Sunday, October 07, 2012

The Ghost in the Machine the Grand Illusion of Consciousness

In this posting, I would like to explore one of the final intellectual challenges of mankind – trying to figure out the true nature of consciousness. When it comes to thinking about such matters, most people, including most researchers in the field of cognition, are unwitting advocates of a theory of consciousness known as dualism. In dualism, it is posited that the Mind and mental activities are not really physical in nature. While the body is certainly composed of physical matter, undergoing physical processes to sustain life, the Mind, consciousness and human personality, on the other hand, are thought to be intangible and nonphysical in nature. RenĂ© Descartes (1641) is credited with first developing a formal theory of consciousness based upon dualism to solve the mind-body problem. The opposite worldview to dualism is called materialism, in which consciousness and the Mind simply result from physical material substances undergoing physical chemical and electrical processes within the brain.

Figure1 - In RenĂ© Descartes’ worldview of dualism, consciousness arises from inputs that are passed on by the sensory organs to the material brain and from there to the immaterial spirit of the Mind.

Dualism really represents the last vestiges of an earlier philosophical concept known as vitalism. In vitalism, it was thought that living things were distinct from nonliving things because they contained a “vital force” that was distinct from physical matter. Erasistratus (304 BC – 250 BC) was an early supporter of vitalism. Erasistratus believed that the physical, but dead, atoms of the body were vitalized by the pneuma ("animal spirit") that circulated through the nerves. However, in the 16th century, with the rise of the Scientific Revolution, vitalism was slowly replaced by a mechanistic worldview which held that living things were simply the result of very complicated physical biochemical processes. Thanks to high school biology and modern medicine, most people today are indeed mechanists at heart because they have personally experienced the great benefits derived from pharmaceuticals. Most people find that the relief they obtain from taking a few thousandths of a gram of an organic molecule in pill form to be quite convincing of the mechanistic theory of life. However, even today, in a culture that is totally dependent upon science for its very existence, this mechanistic viewpoint has not been extended to the Mind, consciousness, or to human personality. Rather, most people today still cling to a very dualistic worldview when it comes to such matters, even scientific researchers working on cognition! After all, we all tend to deal with each other as if there really were a mysterious nonphysical personality and intelligence residing within our heads. Why is that? Why is it so hard for us to think of consciousness, the Mind, and human personality simply arising from the same biochemical reactions that keep us alive?

The Value of Grand Illusions - An Astronomical Example
In this posting I would like to offer an explanation for this strange finding from an IT perspective, using an IT analogy that I think helps to shed some light upon the subject, but before I do that, let us look at a similar astronomical analogy first.

It is generally thought that the modern Scientific Revolution of the 16th century began in 1543 when Nicolaus Copernicus published On the Revolutions of the Heavenly Spheres, in which he proposed his Copernican heliocentric theory that held that the Earth was not at the center of the Universe, but that the Sun held that position and that the Earth and the other planets simply revolved about the Sun. To demonstrate just how deeply this founding principle of the 16th-century Scientific Revolution has penetrated into our modern culture, let me begin with a famous story about the philosopher Ludwig Wittgenstein (1889 - 1951). The story goes like this. One day Wittgenstein ran into a friend, Elizabeth Anscombe, in the corridor of a hallway and asked her this question, "Tell me, why do people always say that it was natural for men to assume that the sun went around the earth rather than the earth was rotating?" To which Elizabeth Anscombe responded, "Well, obviously, because it just looks as if the sun is going around the earth." To which the philosopher replied: "Well, what would it look like if it had looked as if the earth were rotating?" This story normally sets most people aback and gets them to really thinking. The answer is of course that, if the Earth really did rotate upon its axis on a daily basis and also revolved about the Sun once per year, the sky would look exactly as it does today because that is indeed what is really going on. However, in our day-to-day life, everybody uses the other model, with the Sun, planets, and stars orbiting about the Earth on crystalline spheres. Why is that? After all, fully 80% of Americans know differently!

Indeed, it is very difficult to use the Copernican heliocentric model of the Solar System when looking at the night sky, even when you really know that it is truly what is going on. I run about two miles every morning before taking a shower, eating breakfast, and starting work as a member of the IT Middleware Operations group for a major corporation from my home office. But even though I know what is really going on, it is very difficult for me to look at the early morning sky using a heliocentric model of the Solar System without a lot of additional thought. Why is that? To begin with, let us look at the early morning sky on November 10, 2012, at 06:30 AM CST from my Chicago suburb of Roselle, IL at a latitude of 420 N and a longitude of 880 W. Figure 3 shows what I would see on my morning run when looking to the east. For me, the Sun is just about to rise in the east. I see a very dim Saturn, near the horizon, in the glare of the early morning twilight. Further above the horizon, I see a very bright Venus and just a little higher in the sky, I see a very thin crescent Moon. Below the horizon are Mercury and Mars, which of course I cannot see, but which I could see at sunset in the west later in the day. But let’s pretend that I can see them in the early morning for this demonstration. The first thing I note is that Mars, Mercury, the Sun, Saturn, Venus, and the Moon all seem to line up along a straight line in the sky (the red line in Figure 3). How strange! To add to this strangeness, as I continue on with my morning runs, I notice that all of these objects seem to slowly move eastward through the sky relative to the fixed stars that I see behind them in the sky, and they all seem to move day-by-day along this same strange line in the sky at different speeds relative to each other! Why is that?

Before proceeding to investigate these strange and mysterious motions of objects in the sky, let me take a quick side trip into some astrophysics. All of the astronomical figures shown down below were generated by a piece of software I pulled from the discard bin of an electronics superstore in 1995 for a whopping $10, with the funny name of “Red Shift”. Red Shift is one of my most prized possessions, and was written by a bunch of starving Russian astrophysicists in 1993 following the fall of the Soviet Union on December 26, 1991 – hence the astronomical pun of “Red Shift”. Red Shift allows you to look at the sky from any position on any planet or moon within the Solar System from 4713 BC to 9999 AD or from any place within the Solar System defined by a sphere that has a diameter of 198 astronomical units centered upon the Sun. An astronomical unit – AU is defined as the distance between the Earth and the Sun, or about 93,000,000 miles. I have Red Shift installed on my work laptop to help keep me awake during website outage conference calls in the middle of the night. Frequently, we spend many hours waiting for other people to respond to pages to join the conference call, or perhaps we wait for the DBAs to run some diagnostics on some Oracle databases, or let NetOps investigate some network issues. So there is a lot of dead time on outage conference calls because the real problem has nothing to do with Middleware Operations, but they still want you to stay on the call just in case something needs to be done by Middleware Operations later on. That can get pretty boring, and it can be very dangerous to doze off and suddenly wake to seeing a string of:

eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

in one of your Unix sessions, so to keep myself awake, I just do things like take a quick side trip to Titan, a moon of Saturn, and watch a beautiful Saturn-rise near the horizon from a position of 420 N and a longitude of 880 W on Titan in the year 4288 AD.

Figure 2 – Saturn-rise on November 10, 4288 AD at 06:30 AM CST as seen from a position of 420 N and a longitude of 880 W on the moon Titan. (Right-click and open in a new window for a clearer viewing)

Red Shift is truly a tribute to the predictive value of the very positivistic effective theories of Newtonian mechanics and Newtonian gravity. Recall that positivism is an enhanced form of empiricism, in which we do not care about how things “really are”, but instead, we focus upon how things are observed to behave. An effective theory is just an extension of positivism and is an approximation of reality that only holds true over a certain restricted range of conditions and only provides for a certain depth of understanding of the problem at hand. For example, Newtonian mechanics is an effective theory that makes very good predictions for the behavior of objects moving less than 10% of the speed of light in weak gravitational fields and which are bigger than a very small grain of dust. These limits define the effective range over which Newtonian mechanics can be applied to solve problems. For very small things we must use quantum mechanics and for very fast things moving in strong gravitational fields, we must use relativity theory. All of the current theories of physics, such as Newtonian mechanics, Newtonian gravity, classical electrodynamics, thermodynamics, statistical mechanics, the special and general theories of relativity, quantum mechanics, and the quantum field theories of QED and QCD are just effective theories that are based upon models of reality, and all these models are approximations - all these models are fundamentally "wrong", but at the same time, these effective theories make exceedingly good predictions of the behavior of physical systems over the limited ranges in which they apply. So for the celestial mechanics calculations made by Red Shift, Newtonian mechanics and Newtonian gravity make very precise predictions for how the planets, moons, and asteroids of the Solar System move with time over thousands of years. However, Newtonian mechanics cannot explain how the transistors in your GPS unit work or explain why time moves slower on the surface of the Earth by 38.7 microseconds per day than it does at a height of 12,600 miles above the Earth where the GPS satellites are found in a weaker gravitational field. Along these lines, the most we can probably hope for when it comes to a theory of consciousness is an effective theory of consciousness, the Mind, and human personality that is only an approximation of reality.

Figure 3 – The early morning sky on November 10, 2012, at 06:30 AM CST as seen from my Chicago suburb of Roselle, IL at a latitude of 420 N and a longitude of 880 W. (Right-click and open in a new window for a clearer viewing)

Now let us look at the same scene from a distance of 6 astronomical units above the Sun in a northerly direction – see Figure 4. Recall that an astronomical unit is defined as the distance between the Earth and the Sun, so we are essentially looking down upon the Solar System from a distance that is 6 times the distance of the Earth from the Sun.

Figure 4 – The same scene from Figure 3 as seen from a distance of 6 astronomical units above the Sun in a northerly direction. (Right-click and open in a new window for a clearer viewing)

For most people, it is very difficult to reconcile Figure 4 with Figure 3 in their Minds, It is just so much easier to look at Figure 3 and imagine the Sun rising in the east as it always does, with the Sun, planets and Moon rotating about the Earth upon crystalline spheres that slowly rotate about the Earth, and with the fixed stars on a very distant crystalline sphere that also rotates once per day about the Earth.

Many times on my morning runs, I will try to actually get a gut feeling for what I am seeing in the sky using a heliocentric model of the Solar System as depicted in Figure 4. Now let us try doing that together. First, rotate your computer screen so that you are looking to your east and have Figure 3 in view. Pretend that you are also looking at a sunrise to your east. Now make a fist with your right hand and stick your thumb out like you are trying to hitch a ride, as shown in Figure 5. Next point your thumb due north and elevate your thumb by an angle to the horizontal that is equal to your latitude. In my case, I elevate my thumb by an angle of 420 to the horizontal because my hometown of Roselle, IL is at a latitude of 420 N. Now your thumb is pointing parallel to the Earth’s axis and is also pointing in the direction of Polaris, the North Star. Your fingers are also curling counterclockwise in the same direction that the Earth spins.

Figure 5 – If you make a fist with your right hand and stick your thumb out and then point your thumb due north and elevate it relative to the horizontal with an angle that is equal to your latitude, your thumb will be pointing in the same direction as the Earth’s axis and your fingers will be curling in the direction of the Earth’s spin.

Since all of the planets, moons, and asteroids of the Solar System are all orbiting about the Sun in the same plane called the ecliptic (the red line in Figure 3), we see Mars, Mercury, the Sun, Saturn, Venus and the Moon all in a straight line in the sky in Figure 3 because that straight line is what we see when we look at the ecliptic plane edgewise. It is like living somewhere on a big flat plate that contains all of the planets of the Solar System. No matter where you look, you see the plate edgewise as a line in the sky as you rotate your head by a full 3600. That also explains why the Sun, planets, and Moon all seem to move along this same straight line day-by-day in the sky. We are simply seeing them orbit along the plane of the ecliptic about the Sun. Since the Earth’s axis is nearly perpendicular to the ecliptic, the plane of the Solar System, and only tips relative to the ecliptic by an angle of 23.50, nearly everything else in the Solar System, including the Sun, planets and asteroids, will also be rotating in the same counterclockwise direction as your fingers are curling. In fact, thanks to the conservation of angular momentum, your fingers are now actually curling in the same general rotational direction of the giant gas and dust-filled molecular cloud that collapsed into our Solar System about 4.6 billion years ago, and the funny line of planets in the sky defines the plane of the rotating protoplanetary disk of gas and dust that a local swirl in the molecular cloud collapsed into while in the process of forming our Solar System!

Next, take your right fist, and keeping your thumb always pointing in the same direction, make a large sweeping counterclockwise motion with your right arm around the rising Sun, like you are stirring a large pot of soup. That motion defines the yearly motion of the Earth about the Sun. When your thumb is tipping away from the Sun, it is winter in the Northern Hemisphere. When your thumb is tipping towards the Sun, it is summer in the Northern Hemisphere. Since spring follows winter in this simulated orbit of your fist about the Sun, when your fist is between yourself and the Sun it is spring, and when your fist is behind the Sun it is fall. Next, try to imagine that the entire planet that you are standing upon is also making this same circular motion as your fist about the Sun on a yearly basis. Then do the same thing for Venus. Imagine that Venus is orbiting about the rising Sun with a sweeping counterclockwise motion defined by the fingers of your right hand. At the same time, realize that since Venus is actually orbiting closer to the Sun than the Earth, it is like we are on a race track together running around the Sun, with Venus on the inside track running much faster than the Earth because the Sun’s gravity is much stronger for Venus than it is for the Earth, and thus, Venus must have a much higher orbital velocity to generate a sufficient centrifugal force to overcome the stronger gravitational pull from the Sun. So Venus is rapidly outrunning us around the track. Next look at Saturn, which although you see it between Venus and the Sun in the sky, you must realize is much farther away, and that you are merely looking at the distant Saturn between the much closer Sun and Venus. Saturn is also orbiting about the Sun in the same general direction that your fingers are curling too, but because Saturn is much further from the Sun, Saturn has a much lower orbital velocity than the Earth, so Saturn is really lagging behind us on a very distant outside track.

This is all made very apparent in Figure 4. In Figure 4 draw an imaginary line that passes through the Earth and the Sun. This line defines the horizon line on Earth as seen at sunrise on November 10, 2012, at 6:30 CST at a position of 420 N and a longitude of 880 W, and is as shown in Figure 3. Now notice that immediately at this horizon line, we see the rising Sun and that slightly above the horizon line we see a very distant Saturn. A little higher we see the much closer Venus. Just below the horizon line, we see Mercury, which happens to be the closest planet to the Earth at this particular time. And a little further below the horizon line we see a more distant Mars. Notice that the Earth, Sun and Venus seem to form a right triangle in Figure 4. This means that Venus is very near to its maximum elongation, the maximum apparent distance between the Sun and Venus as seen from the Earth. That is why the angular distance between Venus and the Sun is so great in Figure 3, and why Venus appears so bright in the sky, much brighter than any other star. Indeed, this is why Venus is frequently taken to be a UFO by the uninformed and has been the subject of many hot pursuits by the authorities and civil aircraft.

Looking back to Figure 3, we finally see a very thin crescent Moon that is fairly close to the rising Sun at the horizon. The scale of Figure 4 is such that the Earth and Moon blend into a single dot, so let us zoom in on the Earth-Moon system in Figure 6. Notice how large the Earth’s Moon is in comparison to the Earth itself. Indeed, all of the other moons in our Solar System are very minuscule in comparison to their home planets. Our Moon is so large because the Earth–Moon system formed as a result of a gigantic impact of a Mars-sized proto-planet hitting the newly formed proto-Earth with a glancing blow about 4.5 billion years ago, blasting a huge amount of material into orbit around it, which later accreted to form our Moon. This glancing blow left the Earth-Moon system with a great deal of angular momentum, and the Earth and Moon now orbit about a common center of gravity between each other, forming the only binary planetary system in our Solar System. This abundant angular momentum keeps the axis of the Earth’s rotation very stable so that it always points more or less straight up and down relative to the ecliptic plane defined by Earth’s orbit. Thus, the axis of the Earth does not wobble and wander around a great deal as it does for the other terrestrial planets like Mars and Venus, as they are tugged upon by Jupiter. Indeed, if the Earth did not have such a large Moon, there would be extended periods of time in excess of several millions of years, when the Earth’s axis might be pointed directly at the Sun, causing the Northern Hemisphere to have daylight all summer long and searing temperatures far too high to sustain complex life, while at the same time, the Southern Hemisphere would be in total darkness for their entire winter and far too cold for complex life. In Figure 6 we see why the Moon appears as a very slim crescent that is very near to the rising Sun. It is because the Moon is nearly in front of the Sun in its monthly orbit about the Earth. Like everything else in the Solar System, the Moon orbits the Earth in a counterclockwise manner as seen from the north. In Figure 6, you can make out Africa and Europe on Earth, so just take your right fist with its thumb sticking up and align it with the axis of the Earth, pointing up to the north. The Earth will now be spinning in the direction that your fingers curl and the Moon will be orbiting the Earth in the same direction that your fingers are curling as well.

Figure 6 - The Moon appears as a very slim crescent that is very near to the rising Sun in Figure 3. That is because the Moon is nearly in front of the Sun in its monthly orbit about the Earth. Like everything else in the Solar System, the Moon is orbiting the Earth in a counterclockwise manner as seen from the north. (Right-click and open in a new window for a clearer viewing)

Now if you happen to live in the Southern Hemisphere, you must realize that you are looking at the Solar System “upside down”! In fact, we in the Northern Hemisphere always wonder why you in the Southern Hemisphere do not get dizzy and disoriented from standing on your heads all day long. Because you are looking at the Solar System “upside down”, you must, of course, reverse everything that I have told you. Strangely, you will still see the Sun rise in the east, but everything else needs to be reversed. You must use your left fist with your left thumb sticking up instead of your right fist with your right thumb sticking up. Now point your left thumb due south and then elevate your thumb to make an angle with the horizontal that is equal to your southern latitude. And naturally, for you, everything in the Solar System will be spinning clockwise instead of counterclockwise because you, unfortunately, are looking at everything “upside down”!

Now I have most probably confused and disoriented all of my readers in the Northern Hemisphere! To overcome this disorientation, you must help my readers in the Southern Hemisphere realize the errors of their ways. To do that, simply hold out your left fist with your left thumb up and your right fist with your right thumb up too. Your right thumb represents the North Pole, while your left thumb represents the South Pole. Now simply point your left fist and thumb down and move your left fist over to your right fist so that the bottoms of both fists are now touching, with your right thumb still pointing up. Notice that the fingers of both your right and left fists are now both curling in a counterclockwise manner as they should, indicating the true counterclockwise rotation of the Earth. Now simply flip the whole affair over so that your left thumb (S) is now pointing up and your right thumb (N) is pointing down. Now you will find that the fingers of both your right and left fists are both curling in a clockwise manner. At first, you will most likely find yourself in a very awkward and uncomfortable position, indicating the true error of looking at things this way, but strangely, if you simply twist your right and left fists by 1800, you will find that both your left and right fists are now in a very comfortable position in front of your body, with your left thumb (S) pointing up and the fingers of your left fist curling towards you and the fingers of your right fist curling away from you, and both curling in a clockwise manner. How strange! But this is how people in the Southern Hemisphere look at things “upside down”. Now of course, I am just having a little fun here. Naturally, there is no “up” or “down” in the Universe. It is all just a matter of perspective and old human conventions. Try to remember that in your daily life, and you will go far.

So now you can see that it really is possible, with great difficulty, to look at the sky and truly see the heliocentric motions of the Earth and the other planets in action. But in real life, nobody does that! We are all much more comfortable with the illusion that just the opposite is true. We all see the Sun, planets, and Moon orbit about a fixed Earth. And this very comforting illusion has proven to be quite useful in our day-to-day lives as well. Using this very useful illusion, people were able to navigate the seas, make sundials that told them the time of day and allowed them to create calendars that told them when to plant their crops, harvest the fruits of their labors, and slaughter their livestock for winter holidays and festivals. And the use of this very practical illusion even extends to astronomers! Astronomers locate objects in the sky by their declination and right ascension. What they do is to simply pretend that the Earth is at rest at the center of the Universe. Then they take the lines of latitude on the Earth and project them onto the night sky and call them lines of declination. They do the same thing with the Earth’s lines of longitude by projecting them onto the sky and calling them lines of right ascension. The North Pole of this system is the point in space where the Earth’s north axis points, and which is currently very close to the position of Polaris, the North Star.

Figure 7 – Even astronomers think of the Earth as being at rest at the center of the Universe with the stars, Sun, planets, and Moon orbiting about the Earth on crystalline spheres centered upon Polaris, the North Star. (Right-click and open in a new window for a clearer viewing)

Figure 8 – At the horizon looking south, we see the stars of the night sky rotate at the rate of one hour of right ascension per hour, or 150 per hour, in an east to west motion because the Earth is actually spinning from west to east. The Sun, planets and the stars all seem to rise in the east, follow a graceful arc across the sky, defined by the lines of declination, and then set in the west. (Right-click and open in a new window for a clearer viewing)

The important point to take away from all of this astronomy is that although we all may see a slightly different pattern of stars in the night sky, depending upon our location on the Earth, even to the extent that people in the Southern Hemisphere will actually see the commonly known constellations of the Northern Hemisphere “upside down”, we all still share the same common illusion that the Earth is at the center of the Universe and that all the stars, planets, Moon, and Sun seem to orbit about a fixed Earth, just as we all share the same common illusion that all the people about us have Minds composed of a non-material spirit. And this shared grand illusion even extends to our very own Minds and to our own sense of “self” itself. After all, nobody can really know what you perceive of as the color red, but we do all share the same common illusion that the color red really does exist. Similarly, even though we all may intellectually realize that it is the motion of the Earth orbiting about the Sun that makes the sky look the way it does, and not the reverse, and that the apparent spirit of the Mind is actually the end result of billions of neuronal switches constantly firing on and off; in our daily lives we all seem to fall back upon the ancient, but commonly held, grand illusion of consciousness as a spirit of the Mind. And both of these grand illusions have proven quite useful over time from an evolutionary point of view, providing those individuals possessing them with a very powerful survival advantage over those individuals who did not, and consequently, were strongly favored by natural selection.

The Ghost in the Machine – Another Grand Illusion
Now let us look at another very useful grand illusion – consciousness. The term “the ghost in the machine” was first coined by philosopher Gilbert Ryle (1900 – 1976), who shared many of Wittgenstein's approaches to philosophical problems. Ryle used the term “the ghost in the machine” to rebel against Descartes’ worldview of dualism. In Ryle’s day the term actually referred to the immaterial spirit of the Mind found in Descartes’ dualism, but in the modern world of computing, I think the term has taken on an entirely new meaning. It seems as if we all interact with our computers as if there really were a “ghost in the machine”, and that goes for most IT professionals as well! In the above astronomical example, we saw the very practical and nearly universal grand illusion that we all share in regards to the night sky and to our apparent place in the Universe, even though at an intellectual level we may certainly know better. What I would like to do next is to formulate a similar IT analogy to the above astronomical analogy using the multi-layered abstract concepts found in GUI (Graphical User Interface) operating systems, such as Windows and Mac. I am certainly not the first to do this, but with that in mind, let me proceed anyway.

These GUI operating systems abstract the behavior of billions of transistors, all firing billions of times per second within the CPUs of our computers, to create a grand illusion that we as human beings find very comforting and similar to the observed behaviors of a conscious being. Again, I am taking a very positivistic approach to consciousness here by merely trying to formulate an effective theory of consciousness based upon observations. Once we understand how this GUI grand illusion arises, we will look to the human brain for similarities. Essentially, we will be exploring philosopher Daniel Dennett’s and psychologist Susan Blackmore’s contention that consciousness, the Mind, and human personality are, similarly, very useful grand illusions that we all use in our daily dealings with each other and even with ourselves – please see The Grand Illusion:

http://www.susanblackmore.co.uk/journalism/ns02.htm

All computer users are quite experienced with the frustration of software hanging and running very slowly. Most software users get very impatient after about 10 seconds and will start doing things to remedy the situation, sometimes causing more harm than good. But we all do this. I do it, you do it, and all IT professionals do it too. We all start tinkering with connections to the machine, or killing applications that are “not responding” with Windows Task Manager, or rebooting the whole machine if necessary. Since most computer users only have a very superficial understanding of what is really going on, and that goes for most IT professionals as well if you dig down deep enough into the technology, as human beings we all seem to fall back upon our ancestral roots by looking for the “ghost in the machine”. We adopt procedures that seem to make the computer work better, even though we do not fully understand why, and many of these procedures may only seem to make the computer work better in a manner reminiscent of the placebo effect. We simply try to appease the “ghost in the machine”, in a nearly superstitious manner, to get it to behave. For example, I put my work laptop into hibernation mode when I am not using it. In hibernation mode, all of my laptop’s current active memory gets written to a huge encrypted disk file, and then my laptop shuts itself off to save power. So essentially, my laptop enters a state of suspended animation and is essentially “dead” when I am not using it. To revive my dead laptop, I simply press the power button and login with my ID and password to have my laptop read the encrypted disk file and quickly load it back into memory. At that point, it is like my laptop is back up and running all the applications that I had running prior to the hibernation. You see, it is much faster for me to revive a “dead” hibernating laptop than for me to boot up my laptop and launch all the applications that I need to do my work. Speed is essential when responding to a page in the middle of the night to fix a problem. However, the downside to using hibernation is that my laptop slowly accumulates zombie processes, so I routinely spend about 10 minutes each morning rebooting my laptop and starting up all of the applications that I need before starting my normal workday. Now, why do I do that once per day? Would it be better for me to reboot my laptop twice per day or maybe every other day? I don’t know the answer to that question because I am simply trying to appease the “ghost in the machine” with something that seems to work for me.

Similarly, I find that most people, including most IT professionals, tend to deal with their computers as if there really were a “ghost in the machine”. For example, in my IT job in Middleware Operations, I work with perhaps 20 people each day and several hundred computers as well. These people and computers are scattered all over the world and are as far away as India on the other side of the Earth. And I find that all of these people and computers have their own individual personalities defined by the operating systems and software that they are currently running. For example, I interact with machines running the Windows, HP-UX, AIX, Linux, and Solaris operating systems and people running the American-6.4, Indian-7.1, and UK-8.2 operating systems as well. Like most IT professionals, I find it far easier to work with the machines than with the people, but unfortunately, working with people is just part of the job.

Because all of these computers and people tend to have their own personalities, I learn to deal with each on an individual basis, adopting what Daniel Dennett calls an “Intentional Stance” towards them – see Can Your Website Think for more details on the Intentional Stance. For example, a modern high volume corporate website is composed of hundreds or thousands of servers – load balancers, firewalls, proxy servers, webservers, J2EE Application Servers, CICS Gateway servers to mainframes, database servers, and emailservers, which normally are all working together in harmony to process thousands of transactions per second. For example, it is estimated that Google has 450,000 servers spread across 25 datacenters around the world. But every so often, these complex architectures of servers can go very nonlinear, and all sorts of bizarre behaviors emerge. This usually means that the website grinds to a halt. It is very scary to be in the Operations department of IT during one of these outages when everything seems to begin behaving abnormally. We sit there in dread, looking at consoles of blinking red lights, indicating maxed out thread pools and stalled connection pools, wondering what the heck is going on and how it all began. It is very much like being a guard on the walls of the Bastille, looking down upon an enraged mob of peasants, angrily brandishing scythes and pitchforks. Sometimes these outages can be attributed to some minor mutant software bug that was not detected during the very rigorous testing and change management procedures that all modern IT departments conduct, but at least 50% of the time no root cause is readily apparent. These very destructive nonlinear behaviors just seem to emerge out of the blue, due to the very complicated and highly interdependent nature of the underlying software components. Our first inclination, like all Powers That Be, is to simply round up the usual suspects, like WebSphere and Oracle, and start killing their processes to quell the uprising, and frequently that does work, but sometimes it does not. Fortunately, many times these spontaneous uprisings will cease on their own, and the enraged crowds will disperse on their own, allowing us to once again return to our normal guard duties, waiting for the next uprising to come along.

The Hardware of Consciousness
Now let us see how these Mind-like behaviors arise in computers by looking a little bit under the hood. To build a computer, all you need is a large network of interconnected switches that have the ability to switch each other on and off in a coordinated manner. Switches can be in one of two states, either open (off) or closed (on), and we can use those two states to store the binary numbers of “0” or “1”. By using a number of switches teamed together in open (off) or closed (on) states, we can store even larger binary numbers, like “01100100” = 38. We can also group the switches into logic gates that perform logical operations. For example, in Figure 9 below we see an AND gate composed of two switches A and B. Both switch A and B must be closed in order for the light bulb to turn on. If either switch A or B is open, the light bulb will not light up.

Figure 9 – An AND gate can be simply formed from two switches. Both switches A and B must be closed, in a state of “1”, in order to turn the light bulb on.

Additional logic gates can be formed from other combinations of switches as shown in Figure 10 below. It takes about 2 - 8 switches to create each of the various logic gates shown below.

Figure 10 – Additional logic gates can be formed from other combinations of 2 – 8 switches.

Once you can store binary numbers with switches and perform logical operations upon them with logic gates, you can build a computer that performs calculations on numbers. To process text, like names and addresses, we simply associate each letter of the alphabet with a binary number, like in the ASCII code set where A = “01000001” and Z = ‘01011010’ and then process the associated binary numbers.

In May of 1941, Konrad Zuse built the world’s first real computer, the Z3, which consisted of 2400 electromechanical telephone relay switches. These electrical relays were originally meant for switching telephone conversations. Closing one relay allowed current to flow to another relay’s coil, causing that relay to close as well.

Figure 11 – The Z3 was built using 2400 electrical relays, originally meant for switching telephone conversations.

However, relay switches took about 10-1 seconds to close, so electrical relays were very big, very slow, used lots of electricity and generated lots of waste heat. All of these factors severely limited the speed of the Z3 and the amount of memory it could contain.

Figure 12 – Electrical relays were very large, very slow and used a great deal of electricity which generated a great deal of waste heat.

In the 1950s electrical relays were replaced with vacuum tubes. Vacuum tubes have a grid between a hot negative cathode filament and a cold positive anode plate (see Figure 14). By varying the voltage on the grid you can control the amount of current between the cathode and the anode. So a vacuum tube acts very much like a faucet, in fact, the English call them “valves”. By rotating the faucet handle back and forth a little, essentially using a weak varying input voltage to the grid, you can make the faucet flow vary by large amounts, from a bare trickle to full blast, and thereby amplify the input signal on the grid. That is how a weak analog radio signal can be amplified by a number of vacuum tube stages into a current large enough to drive a speaker. Just as you can turn a faucet on full blast or completely off, you can also do the same thing with vacuum tubes, so that they behave very much like telephone relays, and can be in a conducting or nonconducting state to store a binary “1” or “0”. However, vacuum tubes were also very large, used lots of electricity and generated lots of waste heat too, but they were 100,000 times faster than relays and could close in about 10-6 seconds.

Figure 13 – Electrical relays were replaced with vacuum tubes, which were also very large, used lots of electricity and generated lots of waste heat too, but were 100,000 times faster than relays.

Figure 14 – Vacuum tubes contain a hot negative cathode that glows red and boils off electrons. The electrons are attracted to the cold positive anode plate, but there is a gate electrode between the cathode and anode plate. By changing the voltage on the grid, the vacuum tube can control the flow of electrons like the handle of a faucet. The grid voltage can be adjusted so that the electron flow is full blast, a trickle, or completely shut off.

In the 1960s the vacuum tubes were replaced by discrete transistors and in the 1970s the discrete transistors were replaced by thousands of transistors on a single silicon chip. Over time, the number of transistors that could be put onto a silicon chip increased dramatically, and today, the silicon chips in your personal computer hold many billions of transistors that can be switched on and off in about 10-10 seconds. Now let us look at how these transistors work.

There are many different kinds of transistors, but I will focus on the FET (Field Effect Transistor) that is used in most silicon chips today. A FET transistor consists of a source, gate and a drain. The whole affair is laid down on a very pure silicon crystal using a multi-step process that relies upon photolithographic processes to engrave circuit elements upon the very pure silicon crystal. Silicon lies directly below carbon in the periodic table because both silicon and carbon have 4 electrons in their outer shell and are also missing 4 electrons. This makes silicon a semiconductor. Pure silicon is not very electrically conductive in its pure state, but by doping the silicon crystal with very small amounts of impurities, it is possible to create silicon that has a surplus of free electrons. This is called N-type silicon. Similarly, it is possible to dope silicon with small amounts of impurities that decrease the amount of free electrons, creating a positive or P-type silicon. To make an FET transistor you simply use a photolithographic process to create two N-type silicon regions onto a substrate of P-type silicon. Between the N-type regions is found a gate which controls the flow of electrons between the source and drain regions, like the grid in a vacuum tube. When a positive voltage is applied to the gate, it attracts the remaining free electrons in the P-type substrate and repels its positive holes. This creates a conductive channel between the source and drain which allows a current of electrons to flow.

Figure 15 – A FET transistor consists of a source, gate and drain. When a positive voltage is applied to the gate, a current of electrons can flow from the source to the drain and the FET acts like a closed switch that is “on”. When there is no positive voltage on the gate, no current can flow from the source to the drain, and the FET acts like an open switch that is “off”.

Figure 16 – When there is no positive voltage on the gate, the FET transistor is switched off, and when there is a positive voltage on the gate the FET transistor is switched on. These two states can be used to store a binary “0” or “1”, or can be used as a switch in a logic gate, just like an electrical relay or a vacuum tube.



Figure 17 – Above is a plumbing analogy that uses a faucet or valve handle to simulate the actions of the source, gate and drain of an FET transistor.

The CPU chip in your computer consists largely of transistors in logic gates, but your computer also has a number of memory chips that use transistors that are “on” or “off” and can be used to store binary numbers or text that is encoded using binary numbers. The next thing we need is a way to coordinate the billions of transistor switches in your computer. That is accomplished with a system clock. My current work laptop has a clock speed of 2.5 GHz which means it ticks 2.5 billion times each second. Each time the system clock on my computer ticks, it allows all of the billions of transistor switches on my laptop to switch on, off, or stay the same in a coordinated fashion. So while your computer is running, it is actually turning on and off billions of transistors billions of times each second – and all for a few hundred dollars!

All computers have a CPU chip that can execute a fundamental set of primitive operations that are called its instruction set. The computer’s instruction set is formed by stringing together a large number of logic gates composed of transistor switches. For example, all computers have a dozen or so registers that are like little storage bins for temporarily storing data that is being operated upon. A typical primitive operation might be taking the binary number stored in one register, adding it to the binary number in another register, and putting the final result into a third register. Since computers can only perform operations within their instruction set, computer programs written in high-level languages like C, C++, Fortran, Cobol or Visual Basic that can be read by a human programmer, must first be compiled, or translated, into a file that consists of the “1s” and “0s” that define the operations to be performed by the computer in terms of its instruction set. This compilation, or translation process, is accomplished by feeding another compiled program, called a compiler, with the source code of the program to be translated. The output of the compiler program is called the compiled version of the program and is an executable file on disk that can be directly loaded into the memory of a computer and run. Computers also have memory chips that can store these compiled programs and the data that the compiled programs process. For example, when you run a compiled program, by double-clicking on its icon on your desktop, it is read from disk into the memory of your computer, and it then begins executing the primitive operations of the computer’s instruction set as defined by the compiled program.

Below is the source code for a simple program that computes the average of several numbers that are entered via the command line of a computer. Please note that modern applications now consist of many thousands to many millions of lines of code. The simple example below is just for the benefit of our non-IT readers to give them a sense of what is being discussed when I describe the compilation of source code into executable files that can be loaded into the memory of a computer and run.


Figure 18 – Source code for a C program that calculates an average of several numbers entered at the keyboard.

Finally, we need a set of programs to run the computer itself and interact with the computer end-user. This set of programs is called an operating system. The operating system allows users to load other executable program files into the memory of the computer and run them. It also lets users do things like install software, copy files from one place to another on disk, add additional hardware components, and configure the computer to operate the way they like it. When you boot up your computer, you are simply loading the operating system programs of the computer into the computer's memory and start them running. The operating system allows the end-user to also load other application programs into memory and start them running too. In all cases, these programs run under the control of what is known as a process, and all of these processes have a distinct PID or process ID number. Most modern operating systems intended for the general public are now based upon a GUI (Graphical User Interface), like Windows or Mac. These GUI operating systems present the end-user with the illusion of a desktop. By double-clicking on icons on their desktop, end-users can have their computer load and startup application programs like MS Word. The GUI illusion also allows the end-user to do things like copying files by simply dragging and dropping them.

Figure 19 – A GUI operating system provides the end-user with the illusion of a desktop that allows the end-user to interact with the billions of transistor switches within the computer that are firing billions of times per second. (Right-click and open in a new window for a clearer viewing)

Figure 20 – If you start up the Windows Task Manager program by double-clicking on its icon, you can see all of the processes that are currently running to create the illusion of a desktop. Above we see the Windows Task Manager program executable file called taskmgr.exe is running under process ID PID=5564 and is using 2,100 KB of computer memory – or about 2.1 MB of memory. Computers now generally have several GB of memory.

So in reality, the illusion of a GUI desktop that the end-user senses, is really the end result of hundreds of processes all running at the same time, and each process represents a program residing in the computer’s memory and which is opening and closing billions of transistor switches billions of times each second.

The Hardware of the Mind
Now let us explore the equivalent architecture within the human brain. The human brain is also composed of a huge number of coordinated switches called neurons. Like your computer that contains many billions of transistor switches, your brain also contains about 100 billion switches called neurons. Each of the billions of transistor switches in your computer is connected to a small number of other switches that it can influence into switching on or off, while each of the 100 billion neuron switches in your brain can be connected to upwards of 10,000 other neuron switches and can also influence them into turning on or off.

All neurons have a body called the soma that is like all the other cells in the body, with a nucleus and all of the other organelles that are needed to keep the neuron alive and functioning. Like most electrical devices, neurons have an input side and an output side. On the input side of the neuron, one finds a large number of branching dendrites. On the output side of the neuron, we find one single and very long axon. The input dendrites of a neuron are very short and connect to a large number of output axons from other neurons. Although axons are only about a micron in diameter, they can be very long with a length of up to 3 feet. That’s like a one-inch garden hose that is 50 miles long! The single output axon has branching synapses along its length and it terminates with a large number of synapses. The output axon of a neuron can be connected to the input dendrites of perhaps 10,000 other neurons, forming a very complex network of connections.

Figure 21 – A neuron consists of a cell body or soma that has many input dendrites on one side and a very long output axon on the other side. Even though axons are only about 1 micron in diameter, they can be 3 feet long, like a one-inch garden hose that is 50 miles long! The axon of one neuron can be connected to up to 10,000 dendrites of other neurons.

Neurons are constantly receiving inputs from the axons of many other neurons via their input dendrites. These time-varying inputs can excite the neuron or inhibit the neuron and are all being constantly added together, or integrated, over time. When a sufficient number of exciting inputs are received, the neuron fires or switches “on”. When it does so, it creates an electrical action potential that travels down the length of its axon to the input dendrites of other neurons. When the action potential finally reaches such a synapse, it causes the release of a number of organic molecules known as neurotransmitters, such as glutamate, acetylcholine, dopamine and serotonin. These neurotransmitters are created in the soma of the neuron and are transported down the length of the axon in small vesicles. The synaptic gaps between neurons are very small, allowing the released neurotransmitters from the axon to diffuse across the synaptic gap and plug into receptors on the receiving dendrite of another neuron. This causes the receiving neuron to either decrease or increase its membrane potential. If the membrane potential of the receiving neuron increases, it means the receiving neuron is being excited, and if the membrane potential of the receiving neuron decreases, it means that the receiving neuron is being inhibited. Idle neurons have a membrane potential of about -70 mV. This means that the voltage of the fluid on the inside of the neuron is 70 mV lower than the voltage of the fluid on the outside of the neuron, so it is like there is a little 70 mV battery stuck in the membrane of the neuron, with the negative terminal inside of the neuron, and the positive terminal on the outside of the neuron, making the fluid inside of the neuron 70 mV negative relative to the fluid on the outside of the neuron. This is accomplished by keeping the concentrations of charged ions, like Na+, K+ and Cl-, different between the fluids inside and outside of the neuron membrane. There are two ways to control the density of these ions within the neuron. The first is called passive transport. There are little protein molecules stuck in the cell membrane of the neuron that allow certain ions to pass freely through like a hole in a wall. When these protein holes open in the neuron’s membranes, the selected ion, perhaps K+, will start to go into and out of the neuron. However, if there are more K+ ions on the outside of the membrane than within the neuron, the net flow of K+ ions will be into the neuron thanks to the second law of thermodynamics, making the fluid within the neuron more positive. Passive transport requires very little energy. All you need is enough energy to change the shape of the embedded protein molecules in the neuron’s cell membrane to allow the free flow of charged ions to lower densities as required by the second law of thermodynamics.

The other way to get ions into or out of neurons is by the active transport of the ions with molecular pumps. With active transport, the neuron uses some energy to actively pump the charged ions against their electrical gradient, in keeping with the second law of thermodynamics. For example, neurons have a pump that can actively pump three Na+ ions out and take in two K+ ions at the same time, for a net outflow of one positively charged NA+ ion. By actively pumping out positively charged Na+ ions, the fluid inside of a neuron ends up having a net -70 mV potential because there are more positively charged ions on the outside of the neuron than within the neuron. When the neurotransmitters from other firing neurons come into contact with their corresponding receptors on the dendrites of the target neuron it causes those receptors to open their passive Na+ channels. This allows the Na+ ions to flow into the neuron and temporarily change the membrane voltage by making the fluid inside the neuron more positive. If this voltage change is large enough, it will cause an action potential to be fired down the axon of the neuron. Figure 22 shows the basic ion flow that transmits this action potential down the length of the axon. The passing action potential pulse lasts for about 3 milliseconds and travels about 100 meters/sec or about 200 miles/hour down the neuron’s axon.

Figure 22 – When a neuron fires, an action potential is created by various ions moving across the membranes surrounding the axon. The pulse is about 3 milliseconds in duration and travels about 100 meters/sec, or about 200 miles/hour down the axon.

Figure 23 – At the synapse between the axon of one neuron and a dendrite of another neuron, the traveling action potential of the sending neuron’s axon releases neurotransmitters that cross the synaptic gap and which can excite or inhibit the firing of the receiving neuron.

Here is the general sequence of events:

1. The first step of the generation of an action potential is that the Na+ channels open, allowing a flood of Na+ ions into the neuron. This causes the membrane potential of the neuron to become positive, instead of the normal negative -70 mV voltage.

2. At some positive membrane potential of the neuron, the K+ channels open, allowing positive K+ ions to flow out of the neuron.

3. The Na+ channels then close, and this stops the inflow of positively charged Na+ ions. But since the K+ channels are still open, it allows the outflow of positively charged K+ ions, so that the membrane potential plunges in the negative direction again.

4. When the neuron membrane potential begins to reach its normal resting state of -70 mV, the K+ channels close.

5. Then the Na+/K+ pump of the neuron kicks in and starts to transport Na+ ions out of the neuron, and K+ ions back into the cell, until it reaches its normal -70 mV potential, and is ready for the next action potential pulse to pass by.

The action potential travels down the length of the axon as a voltage pulse. It does this by using the steps outlined above. As a section of the axon undergoes the above process, it increases the membrane potential of the neighboring section and causes it to rise as well. This is like jerking a tightrope and watching a pulse travel down its length. The voltage pulse travels down the length of the axon until it reaches its synapses with the dendrites of other neurons along the way or finally terminates in synapses at the very end of the axon. An important thing to keep in mind about the action potential is that it is one way, and all or nothing. The action potential starts at the beginning of the axon and then goes down its length; it cannot go back the other way. Also, when a neuron fires the action potential pulse has the same amplitude every time, regardless of the amount of excitation received from its dendritic inputs. Since the amplitude of the action potential of a neuron is always the same, the important thing about neurons is their firing rate. A weak stimulus to the neuron’s input dendrites will cause a low rate of firing, while a stronger stimulus will cause a higher rate of firing of the neuron. Neurons can actually fire several hundred times per second when sufficiently stimulated by other neurons.

When the traveling action potential pulse along a neuron’s axon finally reaches a synapse, it causes Ca++ channels of the axon to open. Positive Ca++ ions then rush in and cause neurotransmitters that are stored in vesicles to be released into the synapse and diffuse across the synapse to the dendrite of the receiving neuron. Some of the empty neurotransmitter vesicles eventually pickup or reuptake some of the neurotransmitters that have been released by receptors to be reused again when the next action potential arrives, while other empty vesicles return back to the neuron soma to be refilled with neurotransmitter molecules.

In Figure 24 below we see a synapse between the output axon of a sending neuron and the input dendrite of a receiving neuron in comparison to the source and drain of a FET transistor.

Figure 24 – The synapse between the output axon of one neuron and the dendrite of another neuron behaves very much like the source and drain of an FET transistor.

Now it might seem like your computer should be a lot smarter than you are on the face of it, and many people will even secretly admit to that fact. After all, the CPU chip in your computer has several billion transistor switches and if you have 8 GB of memory, that comes to another 64 billion transistors in its memory chips, so your computer is getting pretty close to the 100 billion neuron switches in your brain. But the transistors in your computer can switch on and off in about 10-10 seconds, while the neurons in your brain can only fire on and off in about 10-2 seconds. The signals in your computer also travel very close to the speed of light, 186,000 miles/second, while the action potentials of axons only travel at a pokey 200 miles/hour. And the chips in your computer are very small, so there is not much distance to cover at nearly the speed of light, while your poor brain is thousands of times larger. So what gives? Why aren’t we working for the computers, rather than the other way around? The answer lies in massively parallel processing. While the transistor switches in your computer are only connected to a few of the other transistor switches in your computer, each neuron in your brain has several thousand input connections and perhaps 10,000 output connections to other neurons in your brain, so when one neuron fires, it can affect 10,000 other neurons. When those 10,000 neurons fire, they can affect 100,000,000 neurons, and when those neurons fire, they can affect 1,000,000,000,000 neurons, which is more than the 100 billion neurons in your brain! So when a single neuron fires within your brain, it can theoretically affect every other neuron in your brain within three generations of neuron firings, in perhaps as little as 300 milliseconds. That is why the human brain still has an edge on computers, at least for another 15 years or so.

The Grand Illusion of Consciousness
So now we see that the circuitry within our brains works very much like the circuitry in our computers. But is consciousness really a grand illusion, like a grand GUI operating system interacting with the 100 billion neuron switches in our brains and their quadrillion contact points at the synapses?

Take a close look at Figure 25 below. At the intersections of the white lines, our Minds see grey spots even though there are no grey spots there in reality. Even though our Minds know that this is only an illusion, created by the circuitry within our brains, our Minds simply cannot make them go away no matter how hard we try because our Minds are also an illusion created by the circuitry within our brains!

Figure 25 – At the intersections of the white lines above, our Minds see grey spots even though there are no grey spots there in reality. Even though our Minds know that this is only an illusion, created by the circuitry within our brains, our Minds simply cannot make them go away no matter how hard we try because our Minds are also an illusion that is created by the circuitry within our brains!

But if philosophers, theologians and scientists have been struggling with this problem for ages, how can we be sure? I would like to propose that illnesses such as major depression, schizophrenia and Alzheimer’s disease present an opportunity to gain some understanding of this grand illusion of consciousness. One indication that these diseases might lead to exposing our grand illusion of consciousness is that we all have a general uneasiness about them. For some reason, the idea that Uncle Joe has type-2 diabetes and is on insulin evokes one emotional response within us, while the idea that Uncle Joe is in a psych ward suffering from major depression or schizophrenia or in a nursing home with Alzheimer’s disease evokes quite a different emotional response. We are all perfectly comfortable with the idea of type-2 diabetes being the result of the cells within Uncle Joe’s body no longer responding properly to normal levels of insulin, but we experience a very uncomfortable uneasiness when it comes to visiting Uncle Joe in a psych ward or a nursing home suffering from advanced Alzheimer’s disease. This is because we understand diabetes in terms of a mechanistic worldview of living things, and realize that it is just the result of some biochemical imbalances within his body. However, similar physical diseases such as major depression, schizophrenia and Alzheimer’s disease, on the other hand, challenge our very dualistic model of consciousness, and even call into question the immortality of our very Minds, leaving us feeling very powerless and vulnerable. After all, how can the immaterial spirit of the Mind change so drastically in someone we have known for so many years? In ages past, these diseases were attributed to such things as being possessed by evil spirits, but since that explanation is no longer available to most of us, we simply tend to distance ourselves from those afflicted with such diseases because they make us feel very uncomfortable and uneasy.

This is unfortunate because these diseases present a unique opportunity to explore the true nature of consciousness. Alzheimer’s disease is caused by the physical destruction of the brain’s neural network, which may be induced by the buildup of beta-amyloid protein plaques within the network of neurons. Major depression and schizophrenia are much more promising because they are thought to be caused by concentration imbalances of neurotransmitters in the quadrillion synapses of the human brain. Major depression occurs when there is a deficiency of neurotransmitters in the synapses, like a quadrillion electrical relays with dirty and oxidized contacts that do not make very good electrical contact, while schizophrenia, which is currently less well understood, may similarly arise from hyperactive dopamine receptors in the synapses between the neurons. Major depression is much easier to treat than schizophrenia because the ingestion of a few thousandths of a gram of antidepressant molecules in pill form over a period of two to four weeks can many times produce a dramatic recovery. Modern antidepressants increase the neurotransmitters serotonin, norepinephrine and dopamine in the synaptic cleft between the neurons in the brain. The most commonly used are SSRIs (Selective Serotonin Reuptake Inhibitors), such as Celexa and Prozac, which block the reuptake of serotonin back into the transport vesicles of the axon terminal. These fortunate patients can suddenly “pop” out of a major depression in as short a period as 24 hours after being on an antidepressant for several weeks, and thus, can vividly compare their “depressed” Minds with their “normal” Minds, like Dr Jekyll and Mr Hyde in reverse, with the ingestion of a magical potion that seems to quickly return them to their normal selves. How can this be if the Mind is really a nonmaterial spirit? This is an important consideration because, while with Alzheimer’s disease, we see a physical destruction of the neural network composed of one quadrillion connections between the neurons of the human brain, with major depression the neural network remains intact. What happens in major depression is a disruption in the flow of information between the neurons, and that is key to understanding the grand illusion of consciousness because it indicates that consciousness, the Mind, and human personality merely emerge from a huge flow of information upon the neural network of one quadrillion connections within the brain, and not from the physical neural network of connections itself. Therefore, consciousness really is a grand illusion. It is simply a self-emerging GUI interface to a huge flow of information within the neural network of the brain. The material neural network itself is not the Mind, it is the ephemeral flow of information within the network that is the Mind.

So if consciousness, the Mind, and human personality simply emerge from a large flow of information, this flow does not necessarily have to flow within the squishy brains of carbon-based life forms. Thus, these same effects could arise from huge information flows within networks of silicon-based systems on the Internet, or from even stranger platforms. In Chapter 4 The Black Hole Era of The Five Ages of the Universe (1999), Fred Adams and Greg Laughlin imagine a time 1040 - 10100 years from now when the Universe consists of a very dilute soup of electrons and positrons at nearly absolute zero and which is powered by Hawking radiation from evaporating black holes. The chapter begins with some thoughts of Bob, an intelligent being whose brain consists of a large collection of slowly spiraling electrons and positrons that are each separated by a distance that is many orders of magnitude larger than today’s visible Universe. Bob is 1079 years old and has just sensed some gravity waves pass by from the coalescence of two very large black holes into a truly massive black hole. Bob is a fairly slow thinker because, living so very close to absolute zero, one of Bob’s “seconds” lasts for about 1070 years. But the recent disturbance in his normally quiet Universe gets Bob to thinking again about what happened during the very brief period 1040 years after the Big Bang, when some modern physicists posit that some very short-lived particles, called protons and neutrons, may have interacted with modern electrons and formed very complex structures capable of thought during this very brief period of 1040 years. Since these very exotic short-lived protons and neutrons have long since decayed away, who knows?

November 5, 2016 Update
I just finished a very fascinating MOOC course at Coursera entitled Synapses, Neurons and Brains by Professor Idan Segev that I highly recommend to all who would like to pursue this subject further and also learn about some of the more recent advances in neuroscience. The course is available at:

http://www.coursera.org/learn/synapses

The Role of Information and Consciousness in Modern Physics
At this point, if you are new to softwarephysics you might want to get a brief introduction to the theory of relativity by taking a look at Is Information Real? and Cyberspacetime, and also an introduction to quantum theory at Quantum Software, SoftwareChemistry, and The Foundations of Quantum Computing. However, if you have been following along with the postings in this blog on softwarephysics, my hope is that you have become aware of the ever increasing importance of the concept of information in the development of physics in the 19th and 20th centuries. Beginning with the impact of Maxwell’s Demon upon thermodynamics and statistical mechanics in the 19th century (see The Demon of Software), and progressing into the 20th century with the special theory of relativity and the role of the speed of information transmission in regards to the preservation of causality, and finally terminating with the role of information in quantum mechanics. In Is Information Real?, we saw how the special theory of relativity made information tangible, and we saw our 200-pound man slowly dissolve into pure mathematical information in The Foundations of Quantum Computing.

So is our closely held dualistic model of the grand illusion that forms our Minds totally misguided? Perhaps not if we further explore the role of information and consciousness in modern physics. Again, Descartes’ dualistic model of the Mind maintains that the Mind is not material in nature; it is a “ghost in the machine”. But thanks to modern physics, we now know that the “machine” itself is also very ghost-like in nature too and that most of the “real” material stuff around us is also largely a grand illusion as well. As we saw our hypothetical 200-pound man slowly dissolve into pure mathematics in The Foundations of Quantum Computing, it is good to keep in mind that much of what we observe as “real” material stuff is merely an illusion too. For example, we found that our 200-pound man really consisted of mostly empty space and 100 pounds of protons, 100 pounds of neutrons, and 0.87 ounces of electrons. A proton, consisting of two up quarks and one down quark, has a mass of 938.27 MeV. Similarly, a neutron, consisting of one up quark and two down quarks, is slightly more massive with a mass of 939.56 MeV. But the up and down quarks themselves are surprisingly quite light. The up quark is now thought to have a mass with an upper limit of only 4 MeV, and the down quark is thought to have a mass with an upper limit of only 8 MeV. So a proton should have a mass of about 16 MeV instead of 938.27 MeV, and the neutron should have a mass of about 20 MeV instead of 939.56 MeV. Where does all this extra mass come from? It comes from the kinetic and binding energy of the virtual gluons that hold the up and down quarks together to form protons and neutrons! Remember that energy can add to the mass of an object via E = mc2 by simply rearranging the formula as m = E/c2. So going back to our fictional 200-pound man, consisting of 100 pounds of protons, 100 pounds of neutrons, and 0.87 ounces of electrons, we can now say that the man actually consists of 0.87 ounces of electrons, 1.28 pounds of up quarks, 2.56 pounds of down quarks, and 196.10 pounds of pure energy!

In SoftwareChemistry we saw that chemistry is all about electrons in various quantum states and the electromagnetic force between electrons and protons. This is rather strange since the electrons in an atom represent an insignificant amount of the mass of an atom. Protons have 1836 times as much mass as electrons, and neutrons are just slightly more massive than protons, with a mass that is equal to 1.00138 times that of a proton. But strangely, everything you see, hear, smell, taste, and feel results from the interactions of less than one ounce of those electrons. And all of the biochemical reactions that keep you alive and even your thoughts at this very moment are all accomplished with this small mass of electrons! This all stems from the fact that, although electrons are very light relative to protons and neutrons, for some unknown reason, they pack a whopping amount of electrical charge. In fact, the light electrons have the same amount of electrical charge as the much heavier protons, just with the opposite sign, so it is the electromagnetic force that really counts in chemistry, not the electrons themselves. In that regard, chemistry can really be considered to be the study of the electromagnetic force, and not the study of matter, since electrons are nearly massless particles.

According to our best effective theory on the subject, the quantum field theory of QED (1948), when you push your hand down on a table, the huge number of electrons in both the table and your hand both begin to enter into an exchange interaction that is felt as a repulsive force, because all of those electrons are fermions with a spin value of 1/2, and therefore, due to the Pauli exclusion principle, cannot occupy the same quantum state. The Pauli exclusion principle is also the reason that all of the electrons in a given atom do not collapse into the lowest energy level of the atom. If they did so, there would be no chemistry, and no you to worry about it. This apparent exchange force gives you the illusion that the table and your hand are solid objects, when according to our best effective theories; the table and your hand consist mostly of empty space and pure energy with a thin haze of surrounding electrons. When you look at the man, table, or anything else your Mind is simply creating the illusion of their existence, as ambient photons in the room scatter off the thin haze of electrons surrounding the objects – the objects themselves are mainly composed of pure energy. The table also creates the illusion in your Mind that it is quite massive and very difficult to move when you try to shove it across the floor for a family gathering, but that is just because the table contains a great deal of pure energy. And if the string theorists are correct, even the electrons and quarks in the table are just very small ghost-like vibrating strings of information, in keeping with John Wheeler’s “It from Bit” hypothesis that the Universe may simply be composed of information at its deepest levels.

To take this to an even more extreme level, in What’s It All About?, Genes, Memes and Software and Is the Universe Fine-Tuned for Self-Replicating Information?, I proposed that the multiverse may simply be a vast eternal form of self-replicating mathematical information that has always existed and has spawned an infinite number of universes such as ours. As we saw in Some Reflections on nothingness, our universe may have begun as a quantum fluctuation, forming a universe that is made of “nothing”, with no net momentum, angular momentum, mass-energy, electrical charge or color charge to speak of. It’s like adding up the infinite set of all real numbers, both positive and negative, and ending up with exactly zero. So our Universe might just be one instance within an infinitely large multiverse of universes, and our Big Bang might just be one of an infinite number of Big Bangs of mathematical information exploding out into a new universe.

Infinity is a very large number, so many cosmologists are now coming to the conclusion that the answer to Brandon Carter’s Weak Anthropic Principle (1973):

The Weak Anthropic Principle - Intelligent beings will only find themselves existing in universes capable of sustaining intelligent beings.

is that we just happen to exist in one of the rare universes capable of supporting intelligent beings, but because infinity is infinite, there still would be an infinite number of such universes. Furthermore, intelligent beings should likely find themselves in a universe that just barely qualifies for sustaining intelligent beings, since there would be far more universes that just barely tolerate the existence of intelligence, compared to those that openly welcome intelligent beings with cordial affection. And our Universe certainly seems to be such a universe that is far less than welcoming to intelligent life. If you think of all the places in our Universe where complex intelligent carbon-based life can exist, you come up with a very small portion of the available real estate, and I think the findings to date of the Kepler space telescope bear this out. Kepler is currently searching for planets as they transit in front of about 100,000 stars and has come up with 2321 possible candidates and 105 confirmed planets to date, but none of these planets seem to be likely homes for intelligent beings. Granted, our Universe has the proper forces tuned to the proper strengths and is chock full of the necessary building blocks, but temperature seems to be the limiting factor. In most places, our Universe is simply too hot or too cold for these carbon-based building blocks to do their job. They are either not jiggling around fast enough for chemical reactions to occur in a timely manner, or they are jiggling around too fast to stay stuck together long enough. The temperature range of our Universe goes from a low of 3 0K for the CBR – Cosmic Background Radiation - up to several billion 0K for the core of an O class star about to supernova, with most matter near the extremes. However, carbon-based life can only exist in a narrow range of about 200 0K near the freezing and boiling points of water on Earth, and there are very few places in our Universe where that is the case. The fact that we live in a Universe that is on one hand capable of sustaining intelligent beings, but on the other hand is quite hostile to them at the same time might help to explain Fermi’s Paradox, first proposed by Enrico Fermi over lunch one day in 1950, which asks the question:

Fermi’s Paradox - If the universe is just chock full of intelligent beings, why do we not see any evidence of their existence?

Now if the multiverse really is composed of an infinite number of quantized universes, then our experience of the grand illusion of our Minds might really be like living in the movie Groundhog Day (1993), in which we are constantly experiencing the same things over and over again with slight variations in different universes. This might also provide a better interpretation of quantum mechanics than the Copenhagen interpretation. In 1927, Niels Bohr and Werner Heisenberg proposed a very positivistic interpretation of quantum mechanics now known as the Copenhagen interpretation. You see, Bohr was working at the University of Copenhagen Institute of Theoretical Physics at the time. The Copenhagen interpretation contends that absolute reality does not really exist. Instead, there are an infinite number of potential realities, defined by the wavefunction of a quantum system, and when we make a measurement of a quantum system, the wavefunction of the quantum system collapses into a single value that we observe, and thus brings the quantum system into reality. This satisfies Max Born’s contention that wavefunctions are just probability waves. The Copenhagen interpretation suffers from several philosophical problems though. For example, Eugene Wigner pointed out that the devices we use to measure quantum events are also made out of atoms which are quantum objects in themselves, so when an observation is made of a single atom of uranium to see if it has gone through a radioactive decay using a Geiger counter, the atomic quantum particles of the Geiger counter become entangled in a quantum superposition of states with the uranium atom. If the uranium has decayed, then the uranium atom and the Geiger counter are in one quantum state, and if the atom has not decayed, then the uranium atom and the Geiger counter are in a different quantum state. If the Geiger counter is fed into an amplifier, then we have to add in the amplifier too into our quantum superposition of states. If a physicist is patiently listening to the Geiger counter, we have to add him into the chain as well, so that he can write and publish a paper which is read by other physicists and is picked up by Newsweek for a popular presentation to the public. So when does the “measurement” actually take place? We seem to have an infinite regress. Wigner’s contention is that the measurement takes place when a conscious being first becomes aware of the observation. Einstein had a hard time with the Copenhagen interpretation of quantum mechanics for this very reason because he thought that it verged upon solipsism. Solipsism is a philosophical idea from Ancient Greece. In solipsism, your Mind is the whole thing, and the physical Universe is just a figment of your imagination. So I would like to thank you very much for thinking of me and bringing me into existence! Einstein’s opinion of the Copenhagen interpretation of quantum mechanics can best be summed up by his statement "Is it enough that a mouse observes that the Moon exists?". Einstein objected to the requirement for a conscious being to bring the Universe into existence, because in Einstein’s view, measurements simply revealed to us the condition of an already existing reality that does not need us around to make measurements in order to exist. But in the Copenhagen interpretation, the absolute reality of Einstein does not really exist. Additionally, in the Copenhagen interpretation, objects do not really exist until a measurement is taken, which collapses their associated wavefunctions, but the mathematics of quantum mechanics does not shed any light on how a measurement could collapse a wavefunction.

In The Fabric of Reality (1997) David Deutsch rejects the extreme positivism of the Copenhagen interpretation as, borrowing a term from my youth, a cop-out. If you just don’t understand something like physical reality, it is rather easy to simply deny that it exists. Deutsch believes that physics owes us more than merely a method for calculating quantum probabilities; it owes us an explanation of how and why events actually occur. Deutsch is a strong advocate of the Many-Worlds interpretation, in which reality really does exist, but as an infinite number of realities in an infinite number of parallel universes. In 1957, Hugh Everett working on his Ph.D. under John Wheeler, proposed the Many-Worlds interpretation of quantum mechanics. The Many-Worlds interpretation admits to an absolute reality but claims that there are an infinite number of absolute realities spread across an infinite number of parallel universes. In the Many-Worlds interpretation, when electrons or photons encounter a two-slit experiment, they go through one slit or the other, and when they hit the projection screen they interfere with electrons or photons from other universes that went through the other slit! In Everett’s original version of the Many-Worlds interpretation, the entire Universe splits into two distinct universes whenever a particle is faced with a choice of quantum states and so all of these universes are constantly branching into an ever-growing number of additional universes. In the Many-Worlds interpretation of quantum mechanics, the wavefunctions or probability clouds of electrons surrounding an atomic nucleus are the result of overlaying the images of many “real” electrons in many parallel universes.

David Deutsch approaches the Many-Worlds interpretation with a slight twist. In Deutsch’s version of the Many-Worlds interpretation, there always has been an infinite number of parallel universes, with no need of continuous branching. When electrons or photons encounter a two-slit experiment without detectors, two very closely related universes merge into a single universe as the electrons or photons interfere with each other. If the electrons or photons encounter a two-slit experiment with detectors, the parallel universes remain distinct and no interference is observed. According to this version of the Many-Worlds interpretation, when you hold up a pillow case and observe your neighbor’s front door light and see a checkerboard interference pattern of spots, there are an infinite number of copies of you doing the same thing in an infinite number of closely related parallel universes. The interference pattern you observe is the result of the interference of the photons from all these parallel universes. The chief advantage of the Many-Worlds interpretation is that you do not have to be there to observe the interference pattern. It happens whether you are there or not, and absolute reality does not depend upon conscious beings observing it. Einstein died in 1955, two years before the Many-Worlds interpretation of quantum mechanics, but I imagine that he would have gladly traded an infinite number of universes for the Copenhagen interpretation, in which absolute reality did not even exist in a single one!

So in some sense, perhaps the dualists have been right all along – not because there really is a ghost in the machine, but because the machine itself may be nothing more than a ghost. When all is said and done, the one distinguishing characteristic of the Mind is that it is capable of contemplating such grand illusions, even if the Mind itself is only the grandest illusion of them all.

Comments are welcome at scj333@sbcglobal.net

To see all posts on softwarephysics in reverse order go to:
https://softwarephysics.blogspot.com/

Regards,
Steve JohnstonSteve Johnston0

Monday, February 20, 2012

The Limitations of Darwinian Systems

In many of the postings in this blog on softwarephysics, we have seen the wonderful things that the Darwinian processes of inheritance, innovation and natural selection can do. The beauty of Darwinian systems is that they can seemingly navigate through Daniel Dennett’s complex Design Space to seemingly impossible optimal designs, and without the aid of any directing intelligence at all. This is what sets Darwinian systems apart from all other systems in the Universe. Non-Darwinian systems tend to succumb to the second law of thermodynamics, and therefore, degrade to a state of maximum entropy or disorder, while Darwinian systems, on the other hand, seemingly defy the second law of thermodynamics altogether by producing complex low-entropy designs all on their own. This is further bolstered by the numerous examples of convergence that are found within the biosphere, where species from different lines of descent magically converge upon the same seemingly optimal engineering designs, like the camera-like eye found in humans, birds, sharks and octopuses.

However, Darwinian systems do have their limitations. As Richard Dawkins pointed out in Climbing Mount Improbable (1996), natural selection will always favor characteristics that yield enhanced levels of survivability over characteristics that yield decreased levels of survivability as a species ascends Mount Improbable. Consequently, species do not follow a path through Daniel Dennett’s Design Space that traverses a trail with lower survivability in order to eventually cross over to a path with an even higher level of survivability. In Richard Dawkins’ metaphor of Mount Improbable, a species that finds that it has climbed to a localized peak in the mountainous terrain of survivability is not allowed to descend from the localized peak to find its way up to the summit of Mount Improbable by a different route. Instead, the species will find itself stuck upon the localized peak in the survivability terrain because any mutation that leads away from the localized peak will necessarily lead to a lower level of survivability, and will consequently, be strongly selected against by natural selection. Furthermore, all species eventually do find themselves to be stuck upon a localized peak within the survivability terrain, and when the environment changes, they cannot escape by means of the Darwinian processes of inheritance, innovation and natural selection, and consequently, go extinct. This is why all species eventually do go extinct.

Figure 1 – Darwinian systems can find themselves trapped upon a localized peak in the survivability terrain once they have evolved to a localized peak because they cannot ascend any higher through small incremental changes. All paths lead to a lower level of survivability, and thus, will be strongly selected against by natural selection. Above we see a localized peak in the foreground with the summit of Mount Everest in the background (click to enlarge).

Recently, I have seen this same effect at work in an IT setting. Over the past 5 years, I have seen the number of Websphere servers running our external websites slowly grow from 4 very slow Unix servers running in one Websphere Cell to 34 much faster Unix Websphere servers running in 10 Websphere Cells. The number of Websphere JVM Clusters has also increased from 8 to 110 during this same period, and consequently, the number of applications running within these JVMs has also grown exponentially as well by a factor of at least 20. Like many IT organizations, we do our IT maintenance on the hardware, software, and application code running on our IT infrastructure at night, when usage is low and the potential for end-user impact is slim. We also flip traffic out of the Websphere Cells undergoing maintenance to twin Cells that carry the small amount of night traffic that we do have to minimize impact. The end result is that we only have a 5-hour maintenance window within which to work at night. This should all be quite familiar to readers in IT Operations or Application Development who participate in maintaining hardware, software, and applications since it is a quite common way of performing maintenance.

The problem is that, although our infrastructure has grown dramatically over the years, it did so very slowly through small incremental changes, the same way that living things evolve over time. In Is Self-Replicating Information Inherently Self-Destructive?, we saw that from Peter Ward’s point of view, as expressed in his book The Medea Hypothesis (2009), all living things resulting from Darwinian processes must necessarily be selected for the ability to self-replicate at all costs, with little regard for their fellow beings sharing the same resources of the planet, nor even for their own long-term survival. The urge to self-replicate at all costs necessarily leads to living things that eventually outstrip their resource base through positive feedback loops, until no resources are left. This is what we are now seeing in our change advisory board meetings run by Change Management. Because all of this vast IT infrastructure of hardware, software, and application code needs to be maintained, and there are only seven 5-hour change windows in a week, there is now a great deal of competition amongst competing projects for the dwindling resource of time. And since each project manager tends to consider their project as the most important, this leads to a great deal of conflict. The problem is that, although our IT infrastructure has grown exponentially over the past 5 years, we still only have a 5-hour change window each night within which to work, and we cannot buy any more time at any price. It is a fixed resource, with a fixed carrying capacity, like the planet Earth itself. But as the infrastructure continuously grows in size and complexity, we keep trying to squeeze more and more into this same 5-hour change window, leading to increased levels of stress on the part of the staff performing the maintenance, and for the potential for disastrous mistakes to be made by individuals performing changes under pressure and in haste. This intense competition during change advisory board meetings amongst competing projects for change window time, also leads to a great deal of inefficiency, because it leads to a great deal of project rework when projects are forced to be rescheduled to other change windows because we simply cannot squeeze them into the originally planned window. IT maintenance work can be very complicated, and an implementation plan can require the coordinated talents of many people on many different teams, so when a complex project has to be rescheduled, it necessarily requires a great deal of rework on the part of the project managers to re-coordinate all of the necessary resources.

Clearly, this is an unsustainable path through Daniel Dennett’s Design Space, as we have now found ourselves rapidly approaching a localized peak on Richard Dawkins’ Mount Improbable, with no way to climb any higher. What is needed is an entirely new approach to doing maintenance on the infrastructure, and we cannot simply evolve our way to that new approach through small incremental changes to the current processes. The Darwinian mechanisms of inheritance and innovation, honed by natural selection, simply cannot do that, so unless some external action is taken, our current change processes will eventually lead to a collapse. Instead, we need to step back and take a bird’s eye view of the survivability terrain, so that we can find another path that does lead to a higher level, and yields an entirely new way of performing maintenance on our IT infrastructure. However, this requires the active participation of IT management. Simply continuing on, doing what we have always done in the past, will eventually lead to an evolutionary dead-end and eventual extinction.

All forms of self-replicating information also suffer a similar problem because all forms of self-replicating information evolve by means of the Darwinian mechanisms of innovation and natural selection, and eventually, paint themselves into an ecological corner on a localized peak of Richard Dawkins’ Mount Improbable. This is also an important consideration in today’s divisive political landscape within the United States. We now have many citizens in one political faction that, although they have very little confidence in Darwinian thought, are nevertheless strident supporters of capitalism, a Darwinian system of economics. As an 18th-century liberal and 20th-century conservative, I am also a strong supporter of capitalism, but also being a follower of Darwin, I am also keenly aware of its limitations. For example, today’s complex system of medical care, comprised of a large network of doctors, hospitals, insurance companies, employers and healthcare consumers was not designed by anyone. Instead, it evolved on its own through small incremental changes over a period of more than 100 years. And for most of that period, it did a fine job of providing healthcare through the free market mechanisms of Darwinian inheritance and innovation honed by natural selection. However, in recent decades it has evolved itself to a localized peak on its climb to the summit of Mount Improbable. As the population aged and the demand for healthcare services rose, the ecological niche to which this Darwinian medical system had superbly adapted itself to changed, and the medical system found itself trapped upon a localized peak with nowhere to go. This very complex medical system of doctors, hospitals, insurance companies and healthcare consumers had adapted itself to the concept of employer-provided healthcare insurance, but with increasing costs and competition from overseas corporations that did not have to provide healthcare insurance to employees because they had nationalized healthcare systems, U.S. employers began to drop coverage of employees, and consequently, produced more and more citizens with no insurance at all. In response, doctors and hospitals began to shift the costs of the uninsured population to the insured population, causing the price of medical coverage for the insured to rise dramatically. This caused even more employers to drop healthcare insurance, expanding the population of the uninsured, and therefore, creating a positive feedback loop eating away at the population of insured people. Also, people who had lost coverage at work, and who had pre-existing conditions, found that they could not buy coverage at any price because of their pre-existing conditions, leading to even more high-cost patients showing up at emergency wards, waiting for very expensive free medical treatment. Treating people in emergency rooms is probably the most expensive and least efficient way to provide medical care, so this, in turn, strengthened the positive feedback loop that was eating away at the number of insured people, by raising the costs for all.

In response, the federal government finally stepped in and instituted Richard Nixon’s CHIP (Comprehensive Health Insurance Plan), first proposed by President Richard Nixon on February 6, 1974. For details on Richard Nixon’s CHIP in his own words see:

http://www.kaiserhealthnews.org/stories/2009/september/03/nixon-proposal.aspx

The one difference between the Patient Protection and Affordable Care Act of 2010 and Richard Nixon’s 1974 CHIP was that the CHIP did not have a mandate for citizens to purchase health insurance policies. True, employers were required to provide health insurance for full-time employees, and the CHIP also instituted pools of competing insurance companies for people who were not covered at work, and these insurance pools would also be forced to take on all comers, even those with pre-existing conditions, but people were not required to buy insurance policies from them. You see, a mandate was not really required back in 1974 because the Emergency Medical Treatment and Active Labor Act of 1986, that required hospitals to provide free emergency medical healthcare to anyone who happened to show up at an emergency room, had not been enacted, so back in 1974 there was still a strong incentive for people to take on the personal responsibility of purchasing healthcare insurance from the pools, if they were not already covered at work.

By the way, as an 18th-century liberal and 20th-century conservative, I contend that Richard Nixon has been unjustly shortchanged by history. After all, Richard Nixon gave us dĂ©tente with the Soviet Union, opened the door to China, ended the war in Vietnam, created the Environmental Protection Agency (EPA), supported and signed the Clean Air Act of 1970, formed the Occupational Safety and Health Administration (OSHA), endorsed the Equal Rights Amendment, supported and signed the National Environmental Policy Act requiring environmental impact statements for Federal projects, gave the blind and disabled Social Security benefits, negotiated SALT I, the first comprehensive limitation pact signed by the United States and the Soviet Union, and the Anti-Ballistic Missile Treaty, which banned the development of systems designed to intercept incoming missiles. By today’s crazed standards, Richard Nixon was a flaming socialist. In reality, Richard Nixon was a strong advocate for the miracles that the Darwinian system of capitalism can produce, but at the same time, he was also keenly aware of its limitations too, and under his concept of a “New Federalism”, the role that the federal government could play in filling in the gaps.

Comments are welcome at scj333@sbcglobal.net

To see all posts on softwarephysics in reverse order go to:
https://softwarephysics.blogspot.com/

Regards,
Steve Johnston

Tuesday, January 24, 2012

Using the Origin of Software as a Model for the Origin of Life

I just finished reading Genesis – The Scientific Quest for Life’s Origin (2005) by Robert Hazen, which provides an excellent overview of the current research efforts investigating the origin of life on Earth. Robert Hazen is a former high-pressure mineralogist who transitioned into research on the origin of life and astrobiology several decades ago and is now conducting research in those areas at the Geophysical Laboratory of the Carnegie Institution. As with most researchers working on the origin of life, Robert Hazen views life as a form of self-replicating chemical information, and in Genesis – The Scientific Quest for Life’s Origin he describes the ongoing research into some of the possible steps leading to early life. The book emphasizes the emergence of self-assembling chemical pathways and structures (see The Origin of Software the Origin of Life for details) and the importance of the interactions between organic molecules and mineral structures and surfaces (see Programming Clay) as precursors to the emergence of early protocells using RNA-like organic molecules for genetic material and biochemical pathways for metabolism. Given his geological background, Robert Hazen tends to support the idea that life originated near hydrothermal vents or possibly several thousand feet below the Earth’s surface in porous reservoirs near hydrothermal vents. The pore spaces in the heavily fractured rock near a hydrothermal vent would provide the ideal habitat, with an abundant supply of hot, energy-rich, organic molecules and crystal precipitating ions in the pore fluids circulating through the rock. This environment was also isolated from the planet-wide sterilizing impacts from the late heavy bombardment that peppered the Earth and Moon 4.1 – 3.8 billion years ago with countless impacts from comets careening in from the outer Solar System.

As a former exploration geophysicist, this is also my favorite hypothesis for the origin of life. When I was exploring for oil in one of Shell’s offshore concessions off the coast of Cameroon in 1975, we noticed that the oil that was shallow, at a depth of only a few thousand feet, was much heavier than the much deeper oil many thousands of feet below it. By heavier, I mean that it was composed of hydrocarbons with long chains of carbon atoms, which gave the oil a higher density and also made it more viscous. Heavy oil has less value than lighter oil because it has to be cracked down to hydrocarbons with chains in the gasoline range of seven to eleven carbon atoms. Lighter oil already has lots of hydrocarbons with chains in the seven to eleven carbon range, so all you have to do is boil them off in a distillation tower to make gasoline. At first, Shell was perplexed by the differences in densities between the shallow and deep oil since the shale source rock for both of them was the same formation many thousands of feet below both the shallow and deep oil sandstone reservoirs. Shell’s working hypothesis was that bacteria in the more shallow sandstone reservoirs were eating the lighter fractions of the crude oil in the reservoirs, leaving behind the longer chain hydrocarbons, and that was why the shallow oil was heavier than the deep oil. The deep oil was far too hot for microbes to live in, so these sterilized deep reservoirs managed to keep their lighter fractions in place for millions of years because they had no pesky microbes feasting upon them. So there still are plenty of microbes living way down there in the Earth’s crust, and we may all be their very distant descendants.

Genesis – The Scientific Quest for Life’s Origin describes the difficulties of trying to piece together the emergent steps leading to life in the deep past because nobody was around to record the details, and instead, we have to rely upon whatever vestiges of the steps remain. All this gave me an idea. As I explained in Self-Replicating Information, there currently are three forms of self-replicating information on Earth – genes, memes and software, with software rapidly becoming the dominant form of self-replicating information on the planet. And since software is evolving about 100 million times faster than life on Earth, the origin and evolution of software on Earth over the past 2.2 billion seconds, ever since Konrad Zuse cranked up his Z3 computer in May of 1941, provides an excellent model for the origin and evolution of all forms of self-replicating information because all of the historical data is still largely at hand and most of it occurred within living memory. In fact, software is the only form of self-replicating information on the planet that does have a well-documented history to examine. One could also try to explore the origin of memes, but like the origin of life, the origin of memes occurred a very long time ago, and since memes require the emergence of conscious intelligence in order to self-replicate, something we know very little about, studying the origin of memes is very problematic.

In A Proposal For All Practicing Paleontologists, I outlined a cross-functional research program for the investigation of the evolution of software, which proposed that researchers from the departments of paleontology and computer science of a university team up with the IT department of a local major corporation in order to help shed some light on some of the more difficult aspects of the evolutionary history of life on Earth. For example, in An IT Perspective of the Cambrian Explosion, I tried to show how comparing the evolutionary history of software to the evolutionary history of living things in deep time could help to explain the Cambrian Explosion. I think a similar research program would be very helpful in investigating the origin of life on Earth. Again such a research program would require researchers at a university working on the origin of life to team up with the computer science department of their university and then approach the IT department of a major corporation. In How Software Evolves, we saw that there indeed is a very close relationship between the evolution of software in an IT department and the evolution of living things, so once this cross-functional team became comfortable with working with each other and with being able to relate the evolution of living things to the evolution of software running on a large corporate network, they could then begin to work backwards in time to the very early origins of software, to help inspire some additional unconventional ideas about the origin of life, or to firm up some of the more conventional explanations already in existence.

For example, in The Eerie Silence: Renewing our search for alien intelligence (2010) Paul Davies proposed that life may have originated many times on Earth, using chemical technologies different than what standard life uses today, and perhaps their descendants are still amongst us as a shadow biosphere hiding alongside of standard life. Paul Davies is currently putting together some research strategies for finding these “alien” forms of life that might be right in our midst. Paul Davies contends that because these ancient forms of alien life use dramatically different chemical technologies, they would go unnoticed by our standard lab technologies that are geared towards dealing with standard life forms. Similarly, in Crocheting Software, I showed how crochet and knitting patterns were a shadow form of software with a much earlier origin than computer software, and that they also evolve over time in a similar manner to both computer software and living things. In support of Paul Davies’ contention, most IT professionals also probably have a hard time of thinking of crochet and knitting patterns as alternate forms of software because they are so dramatically different than the standard computer software that they deal with on a daily basis.

Another important factor in the early origin of computer software was the parasitic/symbiotic relationships that it forged with the technological meme-complexes of the 1940s and 1950s. In Self-Replicating Information I explained how most forms of self-replicating information begin as a parasitic mutation of an already existing form of self-replicating information.

Self-Replicating Information – Information that persists through time by making copies of itself or by enlisting the support of other things to ensure that copies of itself are made.

The Characteristics of Self-Replicating Information
All forms of self-replicating information have some common characteristics.

1. All self-replicating information evolves over time through the Darwinian processes of inheritance, innovation and natural selection, which endows self-replicating information with one telling characteristic – the ability to survive in a Universe dominated by the second law of thermodynamics and nonlinearity.

2. All self-replicating information begins spontaneously as a parasitic mutation that obtains energy, information and sometimes matter from a host.

3. With time, the parasitic self-replicating information takes on a symbiotic relationship with its host.

4. Eventually, the self-replicating information becomes one with its host through the symbiotic integration of the host and the self-replicating information.

5. Ultimately, the self-replicating information replaces its host as the dominant form of self-replicating information.

6. Most hosts are also forms of self-replicating information.

7. All self-replicating information has to be a little bit nasty in order to survive.

8. The defining characteristic of self-replicating information is the ability of self-replicating information to change the boundary conditions of its utility phase space in new and unpredictable ways by means of exapting current functions into new uses that change the size and shape of its particular utility phase space. See Enablement - the Definitive Characteristic of Living Things for more on this last characteristic.

In Programming Clay, I highlighted Alexander Graham Cairns-Smith’s theory, first proposed in 1966, that there was a clay microcrystal precursor form of self-replicating information to both RNA-like organic molecules or self-replicating metabolic pathways. Finally, in SoftwareChemistry and SoftwareBiology, I showed the very close similarities between the softwarechemistry of computer source code and the biochemistry of living things. With so many close similarities between computer software and living things, it seems to me that it naturally makes sense to look to the origin of software as a model for the origin of life. After all, what else do we have that even comes close?

Comments are welcome at scj333@sbcglobal.net

To see all posts on softwarephysics in reverse order go to:
https://softwarephysics.blogspot.com/

Regards,
Steve Johnston

Tuesday, December 06, 2011

How Software Evolves

I just finished Evolutionary Analysis (2004) by Scott Freeman and Jon Herron, which is a college textbook on evolutionary biology. As I mentioned in How to Think Like a Softwarephysicist, I like to periodically read college textbooks cover-to-cover and skip all of the problem sets, quizzes, papers, and tests that college students are subject to, and instead, just concentrate on the essence of the material. Since my intention is to really understand the material, and not simply to pass tests, I think that I get much more long-term benefit out of these textbooks now than I did in my long-gone student days. I am now 60 years old, and when I read these very thick college textbooks, I now marvel at the huge amounts of time that the authors must have invested in creating them, something I certainly took for granted in my unappreciative college years. Anyway, after reading Evolutionary Analysis, I realized that in all of my previous posts on softwarephysics, which dealt with the evolution of software over the past 2.2 billion seconds, ever since Konrad Zuse cranked up his Z3 computer in May of 1941, I had described the evolutionary history of software, but I had not really explained the how and why of software evolution. So the subject of this posting will be a discussion of the evolutionary mechanisms involved that caused software to evolve.

In the SoftwarePaleontology section of SoftwareBiology, I provided a brief evolutionary history of the evolution of software on Earth. In that posting, I also explained that because both living things and software had to struggle with the second law of thermodynamics in a nonlinear Universe, that both had converged upon very similar design solutions over time. So much can be learned about the evolution of software by examining the evolution of life on Earth over the past 4.0 billion years, and in order to do that, let us briefly explore some of the concepts of modern evolutionary theory. Modern evolutionary theory is based upon the Modern Synthesis of the 1930s and 1940s, which brought together concepts from Mendelian genetics, Darwinian natural selection, population genetics, ecology and paleontology into a single theory that explained both microevolutionary and macroevolutionary observations. The Modern Synthesis is based upon four component processes – genetic mutation, genetic migration, genetic drift and natural selection, and how the interactions of these component processes change the frequencies of genes within a population. The first two processes, genetic mutation and genetic migration, introduce new genes into a population, while the second two processes, genetic drift and natural selection, tend to reduce the number of genes within a population. The net effect of these processes is to change the statistical frequencies of genes within a population, and that is really what evolution is all about because the genes within the population of a species determine what kinds of proteins a species can generate, and the kinds of proteins that are generated determine how the members of a species look and behave.

Genetic Mutation - A genetic mutation results when genetic DNA is copied and errors occur in the copying process, or a gene gets zapped by something like a cosmic ray and gets repaired incorrectly. Recall that genes are segments of DNA that are many thousands of nucleotides long, containing the A, C, G, and T nucleotides that encode the sequence of amino acids necessary to create a protein molecule. Protein molecules form the structural components within a living cell, or more frequently, protein molecules act as catalytic agents to speed up biochemical reactions in a biochemical pathway. For example, we Homo sapiens have about 25,000 genes that encode for the proteins necessary to build and operate a body, but only a few percent of the 3 billion DNA nucleotides found in our chromosomes are actually used to encode proteins. The vast majority of our DNA nucleotides are just along for the ride and get replicated along with the necessary protein-encoding segments of DNA. This supports Richard Dawkins’ contention that living things are really DNA survival machines, which evolved to protect and replicate DNA using temporary and disposable bodies that persist for a very brief time, as they store and then pass on copies of DNA that are hundreds of millions or even billions of years old. Now thanks to the second law of thermodynamics, most mutations are deleterious because they usually produce a protein that is no longer functional (see The Demon of Software for details on the second law). It’s like having a poker hand with a full house of K-K-K-9-9 and trying to draw another K by discarding the two 9s. The odds are that you will destroy your beautiful full house instead of coming up with a four of a kind like K-K-K-K-2. However, very infrequently, a mutation can lead to a protein that does an even better job than the original protein, or it can even lead to a protein that does something completely different that just happens to be quite useful. In keeping with our poker analogy, a beneficial mutation would be like drawing a K-K-K-K-2 by discarding your 9s in a full house of K-K-K-9-9.

Genetic Migration - Genetic migration occurs when a new version of a gene moves into a population from an outside location. For example, the population of a species on an island is relatively isolated from the population of the same species back on the mainland. But every so often, members of the mainland population might raft themselves to the island on board uprooted trees that were blown down in a hurricane. If these foreign, mainland members of the species also happen to be bearing mutated versions of genes, these mainland mutations can then migrate to the island population.

Genetic Drift - The more complex forms of life have at least two copies of each gene. For example, one copy of each of your genes came from the chromosome that you inherited from your father, while the other copy came from the chromosome that you inherited from your mother. If you have at least one functional version of a gene, you generally are okay, but if you happen to have drawn two non-functional versions of a gene, then you generally are in a great deal of trouble because you cannot make one of the proteins that are necessary for good health, or perhaps, even necessary for life itself. In fact, most genetic diseases result from having two malformed versions of a gene. However, because the odds of having two bad copies of a given gene are quite small, since there are not that many bad copies floating around in a population, we all generally can make the proteins that are necessary for life because we have at least one good copy. However, in large populations, there will always be a small number of fathers and mothers running around with one bad copy of a gene. The odds of a male with one bad copy hooking up with a female who also has one bad copy of the same gene will be quite small, and even if they do manage to have offspring, only about ¼ of their offspring will have the bad luck of ending up with two bad copies of the gene and suffer ill effects. So bad copies of a gene can persist in a large population because the bad copy of the gene can easily hide in bodies that also have a good copy of the gene. So in large populations, deleterious genes tend to persist. However, in small populations mutant genes tend to be weeded out by sheer chance. Because there are just a few of the mutant genes floating about in a small population, there is a good chance that none of them will survive to the next generation because of sheer bad luck. On the other hand, if a mutant gene happens to produce a protein that works nearly as well as the original version of the gene, or perhaps even slightly better, there is also the chance that the original version of the gene might go extinct by sheer bad luck as well. Thus, in small isolated populations, the frequency of various versions of genes can slowly drift away from the original frequency that the population had, as certain versions of the genes go extinct, and this is called genetic drift. Genetic drift is very important for the evolution of new species. If a small population gets isolated on an island, the frequencies of its genes can slowly drift away from the frequencies found back on the mainland, allowing a new species to arise on the island that can no longer mate with the original species back on the mainland and produce fertile offspring with it.

Natural Selection - Natural selection is the famous “survival of the fittest”. When a favorable genetic mutation occurs, or when a favorable genetic mutation migrates into a population, the statistical frequency of the favorable mutation tends to increase within the population because members of the population that have the favorable mutation tend to have a better chance of surviving and passing the favorable mutation on to their offspring. Natural selection is also very important for the evolution of new species, especially in small isolated populations under environmental stress, because natural selection can then strongly select for beneficial mutations, and these beneficial mutations do not get diluted by a large population.

The Evolutionary Processes at Work in IT
We see these same processes at work in IT when software is developed and maintained, and that is why software evolves over time. Since modern evolutionary biology is based upon the changing statistics of genes within a given population, we first need to determine what is the software equivalent of genetic material. For living things, of course, it is the genes composed of stretches of DNA, but for software, it is source code. In order to do something useful, the information in a gene, or stretch of DNA, has to be first transcribed into a protein. This transcription process is accomplished by a number of enzymes, proteins that have a catalytic ability to speed up biochemical reactions. The sequence of operations aided by enzymes goes like this:

DNA → mRNA → tRNA → Amino Acid chain → Protein

Like DNA, the source code for a program has to be first compiled into an executable file, containing the primitive machine instructions for a computer to execute, before it can be run by a computer to do useful things. When you double-click on an icon on your desktop, like Microsoft Word, you are loading the Microsoft Word WINWORD.exe executable file into the memory of your computer where it begins to execute under a PID (process ID). After you double-click the Microsoft Word icon on your desktop, you can use CTRL-ALT-DEL to launch the Windows Task Manager, and then click on the Processes tab to find the WINWORD.exe running. This compilation process is very similar to the transcription process used to form proteins by stringing together amino acids in the proper sequence that is shown above. The output of the DNA transcription process is an executable protein that can begin processing organic molecules the moment it folds up into its usable form and is similar to the executable file that results from compiling the source code of a program. Program source code is indeed much like DNA, but there is one subtle difference. Transcribed proteins do not have any built-in logic of their own, while executable files do. When a living cell produces a large number of protein molecules within its confines and combines them with a large number of smaller molecules called monomers that are the building blocks of living things, wondrous things begin to happen. Biological pathways form, all on their own, from the interactions between the monomers and the enzyme proteins to form step-by-step programs to build up and process the very large molecules required by living things, and which are the basis for the large-scale biological structures found within a living cell. It’s like mixing a bunch of LEGO blocks together with many inquisitive toddlers and allowing the toddlers to form complex LEGO structures all on their own. On the other hand, some biological pathways do just the opposite. They take complex organic molecules, like houses formed from large numbers of LEGO blocks, and break them down into their constituent LEGO block parts or monomers. So the logic in protein enzymes is an emergent quality that arises when enzymes and other organic molecules are mixed together in a cell. This emergent logic is not self-evident when just looking at the enzyme proteins on their own, but when you look at their resulting interactions with other organic molecules, one finds that the logic is indeed there, hiding in the structures of the individual enzyme proteins. The same is not true of software source code. The source code of a program has its logic built-in and in plain sight, and we can easily see the logic at work. I like to consider each variable and symbol in a line of source code to effectively be an enzyme protein or monomer molecule in a softwarechemical pathway reaction. In Quantum Software and SoftwareChemistry, I explained that just as protein molecules are composed of many kinds of atoms, in differing quantum states, all bound together into molecules, we can think of lines of source code in a similar manner.

For example consider the line of code:

discountedTotalCost = (totalHours * ratePerHour) - costOfNormalOffset;

We can consider each character in the line of code to be in one of 256 quantum ASCII states defined by 8 quantized bits, with each bit in one of two quantum states “1” or “0”, which can also be characterized as ↑ or ↓ and can be thought of as 8 electrons in 8 electron shells of an atom, with each electron in a spin-up ↑ or spin-down ↓ state:

C = 01000011 = ↓ ↑ ↓ ↓ ↓ ↓ ↑ ↑
H = 01001000 = ↓ ↑ ↓ ↓ ↑ ↓ ↓ ↓
N = 01001110 = ↓ ↑ ↓ ↓ ↑ ↑ ↑ ↓
O = 01001111 = ↓ ↑ ↓ ↓ ↑ ↑ ↑ ↑

Figure 1 – The electron configuration of a carbon atom is similar to the ASCII code for the letter C in the source code of a program (click to enlarge)

Thus each variable in a line of code can be considered to be a complex molecule interacting with other complex molecules.

Now let’s look at some source code. Below are three examples of the source code to compute the average of some numbers that you enter from your keyboard when prompted. The programs are written in the C, C++, and Java programming languages. Please note that modern applications now consist of many thousands to many millions of lines of code. The simple examples below are just for the benefit of our non-IT readers to give them a sense of what is being discussed when I describe the software development life cycle below from the perspective of the Modern Synthesis.


Figure 2– Source code for a C program that calculates an average of several numbers entered at the keyboard.


Figure 3 – Source code for a C++ program that calculates an average of several numbers entered at the keyboard.


Figure 4 – Source code for a Java program that calculates an average of several numbers entered at the keyboard.

In the SoftwarePaleontology section of SoftwareBiology, we saw that software has indeed evolved over time mainly in response to the environmental changes in the hardware environment in which it exists, in a similar fashion to the way that living things evolved on Earth in response to the environmental changes of a changing planet. Over the past 70 years, there has been an explosive positive feedback loop going on between the evolution of hardware and software. As more complex software evolved and demanded more memory and faster processing speeds, hardware had to keep up by providing ever-increasing amounts of memory and processing speed, which allowed software to demand even more. The result has been that, over the past 70 years, the amount of memory and processing speed available has exploded. It is now possible to buy a $500 PC that has a billion times the memory and runs a billion times faster than Konrad Zuse’s original Z3 computer, and today’s fastest supercomputers run about 1016 times faster than a Z3, or 10 million billion times faster. In Is Self-Replicating Information Inherently Self-Destructive?, we also saw that there have been some positive feedback loops going on between living things and the surface of the Earth as well over the past 4.0 billion years. The arrival of oxygen-producing cyanobacteria about 2.8 billion years ago allowed large amounts of oxygen to eventually appear in the Earth’s atmosphere, which later proved necessary to sustain the complex life forms that arose during the Cambrian Explosion 541 million years ago. Similarly, over the past 500 million years, these complex life forms were able to remove large amounts of the greenhouse gas carbon dioxide from the Earth’s atmosphere. The complex life forms found after the Cambrian did so by producing carbonate deposits formed from shells and reefs, that were later subducted into the Earth by plate tectonics, as the Sun increased in brightness by about 5%. The removal of this vast quantity of the carbon dioxide greenhouse gas prevented the Earth’s temperature from rising to a level that could no longer support complex life forms. Note that in both cases, these feedback loops allowing for more complex software and more complex life forms were not planned. They both just happened on their own in a fortuitous manner, as software and hardware and living things and the Earth interacted with each other.

Now that we know that program source code is the equivalent of genes in an IT setting, we need to see how program source code changes over time in response to the evolutionary processes of genetic mutation, genetic migration, genetic drift and natural selection, and how these processes allow software to adapt to its changing hardware environment. In order to understand this, we need to explore how software is currently developed and maintained in an IT department. Programmers are now called developers so I will use that terminology going forward. Developers are broken up in IT departments into tribes of 5 – 30 developers working under a single chief, or IT application development manager. Each application development tribe of 5 – 30 developers is a semi-isolated population of developers, dedicated to supporting a number of applications, or possibly, a small segment of a very large application like Microsoft Word. In softwarephysics we consider developers to essentially be the equivalent of software enzymes, like the enzymes that copy DNA and fix DNA errors.

Mutation of Source Code
Just as changing the DNA sequence in a gene will likely produce a mutant version of a protein that is non-functional, changing just one character in the source code of a program will likely produce a mutant version of the program that will probably make the program non-functional. Most likely, the mutant source code for the program will not even successfully compile, but if it should compile, the resulting executable file will have a bug in it that will make the program do strange and undesirable things. In both cases, this is the result of the second law of thermodynamics at work in a nonlinear Universe. The second law of thermodynamics simply states that the number of ways of coding up a buggy program or gene is much larger than the number of ways of coding up a useful program or gene, so whenever you change a program or gene, the odds are that you are going to make it buggy or non-functional. See Entropy - the Bane of Programmers and The Demon of Software for more on the second law of thermodynamics. Nonlinear systems are systems that are very sensitive to small changes. A very small change to a nonlinear system, like changing just one character in a gene or the source code for a program, can lead to very dramatic effects. See Software Chaos for more on nonlinear systems. This makes it very difficult to write source code that works, or to produce genes that yield useful proteins. The trick when writing source code is to only make small changes to the source code that make the resulting executable file to more closely do what the program is intended to do, without introducing bugs at the same time that make the executable file do strange and undesirable things that are not intended.

Genetic Migration of Source Code
Over time, every developer acquires his or her own coding style and coding techniques. These accumulate over time, as the developer learns through trial and error, what works well and what does not. However, every so often a developer will get stumped by a particular problem and will frequently turn to other members within the development tribe of 5 – 30 developers for advice. Frequently, another member within the tribe will have some source code that can be modified slightly to solve the problem at hand, so the developer will paste this borrowed code into the source code for the program under development. Consequently, lots of old source code gets exchanged within a development tribe, just as lots of DNA tends to get exchanged within a tribe of people living on a tropical island. And like on a tropical island, every so often a new member to the development tribe will wash up onshore, bearing a new coding style and coding techniques, and lots of new source code that can also be borrowed. So just as genes tend to migrate between populations of living things, the source code for programs can migrate between development tribes. The advent of the Internet has greatly increased this migration of program source code. Thanks to Google, it is now possible to find lots of program source code on the Internet that can be modified to solve any given problem.

Genetic Drift of Source Code
As we saw with genes, many mutations to source code have no effect upon how the resulting executable files behave when they run in a computer. Indeed, it is possible to code up any given program in nearly an infinite number of ways, even using many different programming languages. For example, the three programs above, written in C, C++, and Java, all behave exactly the same when run. So over time, source code coding styles and coding techniques, and even the choice of programming languages tends to drift for a developer and a development tribe. For example, the unstructured code of the 1950s and 1960s was replaced by the structured code of the 1970s and 1980s, which was later replaced by the object-oriented code of the 1990s. However, all of these coding techniques and their associated programming languages could still be used today to produce an executable file that performs the desired functions of a program. See the SoftwarePaleontology section of SoftwareBiology for details on the evolution of coding techniques.

Natural Selection of Source Code
Thanks to the second law of thermodynamics, most random changes to the sequence of nucleotides in a DNA gene will not generate a functional protein. In a similar fashion, most changes to the source code file for a currently functional program will not generate an executable file that still performs the desired functions, and because the Universe is nonlinear, such small coding errors in either DNA or source code files will likely produce disastrous results. For both living things and software, there seems to be only one way around these two major obstacles of the second law of thermodynamics and nonlinearity. This mechanism was first brought to light by Charles Darwin and Alfred Russel Wallace in 1859. In the Modern Synthesis, it goes like this. Within any given population of a species, there will always be genetic variation amongst its members caused by genetic mutations, genetic migration and genetic drift of its genes. Thanks to Mendelian genetics, the genes responsible for these genetic variations are also inheritable and can be passed down to subsequent generations. Most of these variations are neutral or detrimental in nature when it comes to the survival of the individuals possessing them, but once in a great while, a genetic variation will be found to be beneficial, and give individuals carrying such genes a better chance at surviving and passing these new beneficial genes on to their offspring. Darwin called this process natural selection because it reminded him of the artificial selection process used by breeders of domesticated animals. Darwin noted that by allowing domesticated animals with certain desirable traits to only breed with other domesticated animals with similar desirable traits, breeders were able to produce domesticated animals with far superior traits compared to their wild ancestors. For example, by only allowing turkeys and pigs with desirable traits to breed with other turkeys and pigs with desirable traits, breeders over the centuries managed to produce the modern turkeys and pigs of today, which are capable of producing far more meat than their distant ancestors. In a similar manner, Nature automatically selects for members of a species that are better at surviving and allows them to pass on their desirable genetic traits to their offspring. As these small changes to traits accumulate within a population, eventually a new species will arise, especially in small isolated populations. This is the famous “survival of the fittest” concept of Darwin’s natural selection, first coined by the British philosopher Herbert Spencer.

The Software Development Life Cycle From the Perspective of the Modern Synthesis
With all of this background information at hand, let us now see how a developer goes about producing a new piece of software, in a manner similar to how Nature goes about producing a new species. Developers never code up the source code for new software from scratch. Instead, developers take old existing code from previous applications, or from the applications of others in their development tribe, or perhaps even from the Internet itself as a starting point and then use the Darwinian processes of inheritance, innovation and natural selection to evolve the software into the final product. So most new applications inherit lots of old code from ancestral applications that were successful and survived the development process to ultimately end up in production. The source code for applications that died before reaching production usually ends up getting deleted, so the source code for new applications generally comes from the surviving “winners” of a population. The developer then begins a tedious life cycle process consisting of evolving the new software over many thousands of generations:

borrow some old code → modify code → test → fix code → test → borrow some more old code → modify code → test → fix code → test ....

During this very long evolutionary development process, frequently more old code from other existing applications is also introduced, as the new software slowly progresses towards completion. In this development process, we see all of the elements of the Modern Synthesis. The source code for new software inherits source code from the successful software of the past, which might come from the native stock found within a development tribe, or from source code that has recently migrated into the development tribe from outside. As the source code is developed by mutating the code in small incremental steps, natural selection determines which version of the source code ultimately passes on to the next step or generation in the development process at each point that the new source code is tested. Source code is even subject to genetic drift within a development tribe, as coding styles arbitrarily change with time and new computer languages are adopted by the development group. Once an application is in production, the development life cycle continues on as the application enters into a maintenance mode. Bugs constantly need to be corrected and additional features need to be added, and this is accomplished using the same process outlined above of introducing and modifying existing code from other applications, mutating the original source code of the application with small changes, and constantly using natural selection to test how closely the application has come to correcting a bug or adding a new feature every time the code is changed. Thus, the software continues to evolve through small incremental changes over many thousands of testing generations, until the desired result is achieved. Because all of the software throughout the world is currently being worked upon by millions of developers, all at the same time, and the time interval between generational tests during the development and maintenance cycles might be only a matter of a few minutes or seconds, software has tended to evolve over the past 70 years about 100 million times faster than life on Earth.

In addition to application code, the code for the software infrastructure has also evolved over time in a similar manner. Infrastructure developers work on the source code for things like operating systems like Windows and Unix, compilers for new computer languages like the compilers for C, C++, Java and other languages, J2EE appservers like Websphere, webservers like Apache, database management systems like Oracle and DB2, transaction monitors like CICS, and security software like LDAP. And these software infrastructure elements also evolve over time because of the same evolutionary processes outlined above. Notice that all three programs in the figures above that compute the average of a series of numbers entered via a keyboard are very similar. That is because the Java programming language (1995) evolved from the C++ programming language (1983), which evolved from the C programming language (1973).

Thus, because all of the same evolutionary processes are at work for both living things and software, there should be no surprise that both have evolved in a similar manner and that both have converged upon very similar solutions to overcome both the second law of thermodynamics and nonlinearity.

Comments are welcome at scj333@sbcglobal.net

To see all posts on softwarephysics in reverse order go to:
https://softwarephysics.blogspot.com/

Regards,
Steve Johnston

Tuesday, November 22, 2011

An IT Perspective of the Cambrian Explosion

I just finished reading In the Blink of an Eye (2003) by Andrew Parker in which he presents his Light Switch theory for the Cambrian Explosion. The Cambrian Explosion is an enigma that has been plaguing both geologists and evolutionary biologists for more than 150 years, going all the way back to the days of Darwin himself. The Cambrian Explosion is usually characterized by the sudden rapid appearance of complex multicellular organisms in the fossil record. In the strata below the Cambrian, one does not find such fossils, and then in a flash of geological time, large numbers of fossils, of many varieties, are to be found in the Cambrian strata. In the classical description of the Cambrian Explosion, it is proposed that in the Precambrian there were only simple worm-like forms of multicellular life, and they did not leave behind good fossils because they had no hard parts, like shells or hard exoskeletons made of chitin. Then suddenly in the Cambrian, we see the rapid diversification of multicellular life into about 35 different phyla, or basic body plans, that left behind good fossils because they did contain hard parts that could easily fossilize. We have all upon occasion come across silverfish scurrying about in our homes. However, unlike spiders or cockroaches, when you dispatch them with a piece of tissue paper, all you are left with is a smear of protein, rather than a squashed piece of chitin, and that is why we do not find good fossils of life forms in the Precambrian. The exact onset of the Cambrian Explosion keeps bouncing around in geological time, as researchers continue to do their fieldwork, but it is now thought to have begun about 541 million years ago. But the really important point is that the Cambrian Explosion occurred during a very brief period of about 5 million years of geological time, some 500 – 600 million years ago. The two key points of this finding in the fossil record are that the Cambrian Explosion occurred in a very brief amount of geological time and that it occurred very recently – a mere 500 - 600 million years ago. Since life originated on Earth about 4,000 million years ago, the two big questions that the Cambrian Explosion presents are:

1. Why did it happen so quickly, once it got started?
2. Why did it take so long to finally happen?

Of the two questions, the second is the most perplexing, and is also the most profound, for if it took 3,500 million years for complex multicellular life to evolve on Earth, perhaps there was a good chance that it might not have ever even evolved at all, and that would certainly not bode well for us finding complex multicellular life elsewhere in the Universe, or for finding complex multicellular life that has further evolved to a level of intelligent consciousness that we could commune with, even if the Kepler space telescope should find a large number of Earth-like planets out there over the next few years.

Design Patterns – the Phyla of IT
Before proceeding further, we need to bring our IT readers up to speed on what exactly a phylum is in biology. A phylum is a basic body plan for earning a living in the biosphere and has some distinguishing characteristics. For example, Homo sapiens is in the phylum Chordata because we all have a spinal chord, while insects are in the phylum Arthropoda because they all have a jointed chitin exoskeleton. In IT a phylum is called a design pattern. Design patterns originated as an architectural concept developed by Christopher Alexander in the 1960s. In Notes on the Synthesis of Form (1964), Alexander noted that all architectural forms are really just implementations of a small set of classic design patterns that have withstood the test of time in the real world of human affairs, and that have been blessed by the architectural community throughout history for both beauty and practicality. Basically, given the physical laws of the Universe and the morphology of the human body, there are really only a certain number of ways of doing things from an architectural point of view that work in practice, so by trial and error architects learned to follow a set of well established architectural patterns. In 1987, Kent Beck and Ward Cunningham began experimenting with the idea of applying the concept of design patterns to programming and presented their results at the object-oriented OOPSLA conference that year. So in IT, a design pattern describes a certain design motif or way of doing things, just like a phylum describes a basic body plan. A design pattern is a prototypical design architecture that developers can copy and adapt for their particular application to solve the general problem described by the design pattern. This is in recognition of the fact that at any given time there are only a limited number of IT problems that need to be solved at the application level, and it makes sense to apply a general design pattern rather than to reinvent the wheel each time. Developers can use a design pattern by simply adopting the common structure and organization of the design pattern for their particular application, just as living things adopt an overall body plan, or phylum, to solve the basic problems of existence. Just as the Cambrian Explosion was typified by the rapid onset of 35 phyla in the fossil record, the rise of design patterns in IT was closely associated with the rapid onset of object-oriented programming and the Internet Explosion in the early 1990s. In a similar manner, there are only so many ways to earn a living on Earth, and the biosphere seems to have come up with 35 basic body plans, or phyla, to accomplish that. It is interesting to note that no additional phyla ever evolved after the Cambrian Explosion, so it is rather baffling as to why all 35 phyla should have all appeared at the same time in a brief period of 5 million years at the base of the Cambrian.

The Light Switch Theory of the Cambrian Explosion
In In the Blink of an Eye, Andrew Parker proposes that the acquisition of vision by trilobites was the root cause of the Cambrian Explosion. Parker’s explanation for the Cambrian Explosion goes like this. During the last few hundred million years of the Precambrian, all 35 current phyla slowly appeared upon the Earth, but all had adopted very similar soft, worm-like, bodies, with no distinguishing characteristics, and these soft worm-like bodies did not leave behind very good fossils. Apparently, the worm-like body plan was the optimum body design for the day, and there were no compelling reasons for improvement, as will be explained later. Then over a very brief period of a million years or so, trilobites developed eyes that could produce good images of their surroundings. Suddenly, trilobites could now see all of these tiny bits of protein crawling around in worm-like bodies, providing the possibility for hearty meals. Andrew Parker explains that until the invention of an image-forming eye, the Precambrian predators of the Earth practiced passive predation, meaning that they just sat around waiting for prey to fall into their traps, like jellyfish loosely dangling their deadly tentacles, waiting for an unwitting passerby to be stung to death, and then consumed. Without vision, it was very difficult for predators to locate their prey and actively pursue them. But once the trilobites developed sophisticated eyes, a dramatic arms race developed. Suddenly, just remaining still when a predator approached no longer worked, because sunlight streams down upon everything and makes everything visible. Under extreme selective pressures, Precambrian prey began to develop defensive armor in the form of hard exoskeletons with nasty spikes and spines to ward off potential attacks by the pesky trilobites. Thus, the soft, worm-like, bodies of the Precambrian were no longer the optimal design. The trilobites also developed hard parts to make it easier to capture and devour prey, and to avoid becoming the prey of other trilobites too. Other phyla also developed eyes as well, as a defensive measure to avoid the marauding trilobites and to help find their own prey too.

Figure 1 – Fossil of a trilobite with eyes (click to enlarge)

So the basic idea behind the Light Switch theory for the Cambrian Explosion is that the Cambrian Explosion was not the sudden appearance of 35 phyla with fossil-forming hard parts, rather the Cambrian Explosion was the appearance of the first practical eye that allowed for active predation. The 35 phyla were already in place but were all hiding in similar soft, worm-like, bodies. Thus, it really was the arrival of active predation that changed everything. With active predation, the 35 already existing phyla were under extreme selective pressures to adopt expensive defensive measures in the form of hard parts, and these expensive hard parts were not needed during the billions of years of passive predation in the Precambrian, so there were no selective pressures to form them.

Parker’s Light Switch theory for the Cambrian Explosion goes a long way in explaining question number one outlined above:

1. Why did it happen so quickly, once it got started?

but it does not explain question number two very well:

2. Why did it take so long to finally happen?

Because question number two now really becomes:

2. Why did it take so long for a practical eye to evolve?

Why Did It Take So Long For the Eye to Evolve?
The trilobites did not have camera-like eyes such as ours, but compound insect-like eyes instead, made up of many individually lensed units with hard crystalline lenses composed of the transparent mineral calcite. However, our natural anthropocentric tendencies have always centered the evolutionary controversy over the origin of the eye upon the origin of the complex camera-like human eye. Even Darwin himself had problems with trying to explain how something as complicated as the human eye could have evolved through small incremental changes from some structure that could not see at all. After all, what good is 1% of an eye? As I have often stated in the past, this is not a difficult thing for IT professionals to grasp because we are constantly evolving software on a daily basis through small incremental changes to our applications. However, when we do look back over the years to what our small incremental changes have wrought, it is quite surprising to see just how far our applications have come from their much simpler ancestors and to realize that it would be very difficult for an outsider to even recognize their ancestral forms. However, with the aid of computers, many researchers in evolutionary biology have shown just how easily a camera-like eye can evolve. Visible photons have an energy of about 1 – 3 eV, which is about the energy of most chemical reactions. Consequently, visible photons are great for stimulating chemical reactions, like the reactions in chlorophyll that turn the energy of visible photons into the chemical energy of carbohydrates or stimulating the chemical reactions of other light-sensitive molecules that form the basis of sight. In a computer simulation, the eye can simply begin as a flat eyespot of photosensitive cells that look like a patch like this: |. In the next step, the eyespot forms a slight depression, like the beginnings of the letter C, which allows the simulation to have some sense of image directionality because the light from a distant source will hit different sections of the photosensitive cells on the back part of the C. As the depression deepens and the hole in the C gets smaller, the incipient eye begins to behave like a pin hole camera that forms a clearer, but dimmer, image on the back part of the C. Next a transparent covering covers over the hole in the pin hole camera to provide some protection for the sensitive cells at the back of the eye, and a transparent humor fills the eye to keep its shape: C). Eventually, the transparent covering thickens into a flexible lens under the protective covering that can be used to focus light, and to allow for a wider entry hole that provides a brighter image, essentially decreasing the f-stop of the eye like in a camera: C0).

So it is easy to see how a 1% eye could easily evolve into a modern complex eye through small incremental changes that always improve the visual acuity of the eye. Such computer simulations predict that a camera-like eye could easily evolve in as little as 500,000 years.

Figure 2 – Computer simulations of the evolution of a camera-like eye(click to enlarge)

Now the concept of the eye has independently evolved at least 40 different times in the past 600 million years, so there are many examples of “living fossils” showing the evolutionary path. In Figure 3 below, we see that all of the steps in the computer simulation of Figure 2 can be found today in various mollusks. Notice that the human-like eye on the far right is really that of an octopus, not a human, again demonstrating the power of natural selection to converge upon identical solutions by organisms with separate lines of descent.

Figure 3 – There are many living fossils that have left behind signposts along the trail to the modern camera-like eye. Notice that the human-like eye on the far right is really that of an octopus (click to enlarge).

So if the root cause of the Cambrian Explosion hinges upon the arrival of the eye upon the evolutionary scene, and as we have seen above, it is apparently very easy to evolve eyes, why did it take so long? In the very last chapter of In the Blink of an Eye, Andrew Parker tries to address this problem. Parker seems to come to the conclusion that there might have been a dramatic increase in sunlight at the Earth’s surface at the time of the Cambrian Explosion that made eyes physically realizable for the first time. I won’t go into all the details of the explanations offered for why sunlight could have dramatically increased a mere 600 million years ago because I don’t think that such a dramatic increase in sunlight was really possible. Granted, our Sun is a main sequence star that is gradually getting brighter at the rate of about 1% every 100 million years, so 600 million years ago, the Sun was probably about 6% dimmer than today, and 1,000 million years ago it was perhaps 10% dimmer than today, but that is still much brighter than a cloudy day today, so there surely were plenty of photons bouncing around in the very deep past to see with.

Our Sun is indeed getting brighter because, under the high temperatures and pressures in its core, it is turning hydrogen, actually protons, into helium nuclei consisting of two protons and two neutrons. Since helium nuclei have about the mass of four protons, but only the charge of two protons, they take up about as much room as two protons when bouncing around in the Sun’s core. However, because helium nuclei have four times the density of a single proton, the Sun’s core is constantly getting denser with time as protons are constantly being turned into helium nuclei. A core that is constantly getting denser means that gravity is also constantly getting stronger within the Sun’s core, and consequently, the pressure within the Sun’s core that resists the increasing pull of gravity must also rise to stave off the collapse of the core. The pressure within the Sun’s core can only increase by increasing its temperature, but that is easily achieved because a hotter, denser, core also fuses protons into helium nuclei faster than a cooler, less dense, core. The protons in a hotter, denser, core are bouncing around faster and are in closer quarters too, so they are more likely to come close enough together for the attractive strong nuclear force to overcome the repulsive electromagnetic force between them, that tends to keep them apart, and allow the protons to come close enough together for the weak nuclear force to turn protons into neutrons, forming helium nuclei. Thus a hotter, denser, core produces more energy than a cooler, less dense, core, and the generated energy has to go someplace. The only place for it to go is away from the Sun, and the Earth just happens to lie in its path. Now a 1% increase per 100 million years might not sound like much, but even a 1% change to the Sun’s current brightness would dramatically change the Earth’s climate. In fact, the only reason that the Earth has not already burned up is that, over the past 600 million years, vast amounts of carbon dioxide have been slowly removed from the Earth’s atmosphere by the biosphere, and have been deposited upon the ocean floor as carbonate deposits that were later subducted into the Earth’s asthenosphere at the Earth’s many subduction zones. So it is the plate tectonics of the Earth that has kept the Earth at a reasonable temperature over the past 600 million years. Now we can see that there really must have been nearly as many photons bouncing around on the Earth’s surface in the deep past as there are today, or the Earth would have been completely frozen over for the whole Precambrian. Now the Earth actually did completely freeze over during a couple of intermittent Snowball Earth episodes during the Precambrian that lasted about 100 million years each, with the last one occurring about 600 – 700 million years ago, but by and large, the Earth was mainly ice-free during the Precambrian, thanks to the very high levels of atmospheric carbon dioxide and methane at the time.

So if there really were lots of photons bouncing around for billions of years during the Precambrian, why were there no eyes to see them with? Let us now turn to the evolutionary history of software for some possible clues.

Using the Evolutionary History of Software as a Model for the Cambrian Explosion
It is possible to glean some insights into why it took so long for the eye to evolve by examining the evolutionary history of software on Earth over the past 2.2 billion seconds, ever since Konrad Zuse cranked up his Z3 computer in May of 1941. Since living things and software are both forms of self-replicating information that have evolved through the Darwinian mechanisms of innovation and natural selection (see Self-Replicating Information for details), and both have converged upon very similar paths through Daniel Dennett’s Design Space, as each had to deal with the second law of thermodynamics in a nonlinear Universe, perhaps we could look to some of the dramatic events in the past evolution of software, when software seemed to have taken similar dramatic leaps, in order to help us understand the Cambrian Explosion. Now although many experts in computer science might vehemently disagree with me as to what caused these dramatic leaps in the evolution of software and exactly when they might have happened, at least we were around to witness them actually happening in real time! And because software is evolving about 100 million times faster than life on Earth, we also have the advantage of reviewing a highly compressed evolutionary history, which has also left behind a very good documented fossil record. Before proceeding, it might be a good idea to review the SoftwarePaleontology section of SoftwareBiology to get a thumbnail sketch of the evolutionary history of software over the past 2.2 billion seconds. When reviewing the evolutionary history of software, it is a good idea to keep in mind that 1 software second ~ 1 year of geological time, and that a billion seconds is about 32 years.

Softwarepaleontology does indeed reveal many dramatic changes to software architecture in deep time that seemed to have occurred overnight, but in most cases, closer examination reveals that the incipient ideas arose much earlier, and then slowly smoldered for many hundreds of millions of seconds before becoming ubiquitous. Here are just a few examples:

1. Mainframe software - The Z3 became operational in May of 1941 and was the world’s first full-fledged computer, but it was not until the introduction of the IBM OS/360 in 1965, that computers took the corporate world by storm. So it took about 24 years, or 757 million seconds, for mainframe software to really catch on.

2. Structured programming - Up until 1972, software was written in an unstructured manner, like the simple unstructured prokaryotic bacteria that dominated the early Earth for the first few billion years after its formation. So it took about 31 years, or 978 million seconds, for structured programming techniques to catch on.

3. PC software The Apple IIe came out in 1977, and the IBM PC followed in 1981, both with command-based operating systems, like Microsoft MS-DOS. But these command-based operating systems required end-users to learn and use many complex commands to operate their PCs, like the complex commands that PC programmers used on the command-based Unix operating systems that they learned to program on. The MS-DOS applications also did not have a common user interface, so end-users also had to learn how to use each MS-DOS application on its own. To address these problems, the Macintosh came out in 1984, with the first operating system with a graphical user interface, known as a GUI, which allowed end-users to drag-and-drop their way around a computer, and the Macintosh applications also shared a common user interface, or look and feel, that made it easier to learn the use of new applications. However, the Macintosh GUI only ran on expensive Macintosh machines, so MS- DOS still reigned supreme on the cheaper IBM PC clones. Microsoft came out with a very primitive GUI operating environment, called Windows 1.0, in 1985 that ran on top of MS-DOS, but it was very rudimentary and not very popular. IBM came out with their OS/2 1.1 GUI in 1988, but it required much more memory to run than MS-DOS, so again, price was a limiting factor. Finally, Microsoft came out with Windows 3.0 in 1990. Windows 3.0 was really only a GUI operating environment that ran on top of MS-DOS, but it could run on cheap low-memory IBM PC clones, and it looked just as good as the expensive Macintosh or OS/2 machines, so it was a huge success. Thus, it took about 13 years, or 410 million seconds, for PC software to finally catch on.

4. Object-oriented programming - Object-oriented programs are the implementation in software of multicellular organization. The first multicellular organisms first appeared on the Earth about 900 million years ago. Simula, the first object-oriented programming language, was developed by Dahl and Nygaard over a three year period from 1962 – 1965, and in the period 1983 - 1985 Stroustrup developed C++, which did introduce the corporate IT world to object-oriented programming. But object-oriented programming really did not take off until 1995, with the introduction of the Java programming language. So it took about 30 years, or 947 million seconds, for object-oriented programming to really catch on.

5. Internet Explosion The Internet was first conceived by the Defense Department’s Advanced Research Projects Agency or ARPA in 1968. The first four nodes on the ARPANET were installed at UCLA, Stanford, the University of Utah, and the University of California in Santa Barbara in 1969. However, it was not until 1995 that the Internet changed from being mainly a scientific and governmental research network into becoming the ubiquitous commercial and consumer network that it is today. So again, it took about 26 years, or 821 million seconds, for Internet software to finally catch on.

6. SOA – Service Oriented Architecture - With SOA, client objects can call upon the services of component objects that perform a well-defined set of functions, like looking up a customer’s account information. Thus, SOA architecture is much like the architecture of modern multicellular organisms, with general body cells making service calls upon the cells of the body’s organs or even the services of cells within the organs of other bodies. Thus, the SOA revolution is somewhat similar to the Cambrian Explosion. SOA first began with CORBA in 1991, but it really did not catch on until 2004, when IBM began to extensively market the concept. So again, it took about 13 years, or 410 million seconds, for SOA to catch on.

Was the Cambrian Explosion a Real Explosion?
So now we see that the evolution of software over the past 2.2 billion seconds has also proceeded along in fits and starts, with long periods of stasis interrupted by apparently abrupt technological advances. As I pointed out in When Toasters Fly, this is simply evidence of the punctuated equilibrium model of Stephen Jay Gould and Niles Eldredge. For some reason, the spark of a new software architectural element spontaneously arises out of nothing, but its significance is not recognized at the time, and then it just languishes for many hundreds of millions of seconds, hiding in the daily background noise of IT. And then just as suddenly, after perhaps 400 – 900 million seconds, the idea finally catches fire and springs into life. Now, why does the evolution of living things and of software both behave in this strange way? My suggestion is to simply take a good look at the phrase “Cambrian Explosion” – what do you see? Well, it appears that some kind of explosion occurred during the Cambrian, and that is the key to the whole business – it really was an explosion! In Is Self-Replicating Information Inherently Self-Destructive?, I discussed how negative feedback loops are stabilizing mechanisms, while positive feedback loops are destabilizing mechanisms that can lead to uncontrolled explosive processes. I also explained how in 1867, Alfred Nobel was able to stabilize the highly unstable liquid known as nitroglycerin, by adding some diatomaceous earth and sodium carbonate to it, to form the stable solid explosive we now call dynamite. The problem with nitroglycerin was that the slightest shock could easily cause it to detonate, but dynamite requires the substantial activation energy of a blasting cap to set it off. In Figure 4 below we see the potential energy function of dynamite, depicted as a marble resting in the depression of a small negative feedback loop, superimposed upon a much larger explosive positive feedback loop. So long as the dynamite is only subjected to mild perturbations or shocks, it will remain calmly in a stable equilibrium. However, if the marble is given a sufficient shock to get it over the hump in its potential energy function, like a stick of dynamite subjected to the detonation of a blasting cap, the marble will rapidly convert all of its potential energy into mechanical energy, as it quickly rolls down its potential energy hill, like the molecules in nitroglycerin releasing their chemical potential energy into the heat and pressure energy of a terrific blast. This is the essence of the punctuated equilibrium model. For most times, predators and prey are in a stable equilibrium, but then something happens to disturb this stable equilibrium to the point where it reaches a tipping point, and crosses over from the stability of negative feedback loops to the explosive instability of positive feedback loops. Predators and prey then enter into an unstable arms race driven by positive feedback loops, and that is when evolution kicks into high gear and gets something done for a change, like creating a new species or technology.

Figure 4 – Like dynamite, new technologies like the eye are trapped in a stable equilibrium by negative feedback loops, until sufficient activation energy comes along to nudge them into a positive feedback loop regime, where they can explode and become ubiquitous (click to enlarge)

So my suggestion is that the Cambrian Explosion was indeed a real explosion, in the form of an uncontrolled arms race between advancing eyeballs and defensive hard parts. I think that Andrew Parker may have, at long last, really gotten the root cause for the Cambrian Explosion right. The root cause of this arms race was a new form of predation; active predation aided by a new visual sense made possible by eyes, and this new form of predation was the blasting cap that set it all off. But what set off the blasting cap? My suggestion would be – nothing in particular. When you insert a blasting cap into a stick of dynamite, the blasting cap has a pair of copper wire leads running away from the blasting cap that are connected together at their far end with a grounding clip, so that stray electrical voltages do not accidentally set off the blasting cap. To detonate the blasting cap, you remove the grounding clip and then connect the lead wires to a battery-operated detonator. As a young geophysicist, exploring for oil on a seismic crew in the swamps of Louisiana, I vividly recall a fistfight that broke out one day between two crew members. Our explosives technician, known as the Loader, was working on a long string of explosive Nitramon cartridges to be later lowered down into a shot hole to generate seismic waves in the Earth. We were behind schedule, so at the same time, the crew foreman, known as the Observer, was busily using a pocket knife to scrape away the plastic insulation from the lead wires running from the recording field truck to the blasting cap leads. The trouble was that the blasting cap had already been inserted into the first Nitramon cartridge in the string of cartridges, and the grounding clip had also been removed. So when the Loader saw what the Observer was doing back at the recording truck, he ran back to the field truck and tore into him with a vengeance screaming, “Don’t you go messin’ with my life!”. Our Loader was rightly concerned that the contact of the steel pocket knife blade with the copper lead wires could have triggered a voltage spike that could have detonated the blasting cap and the Nitramon string that he was holding!

So here is my take on the root cause of the Cambrian Explosion. What seems to happen with most new technologies, like eyeballs or new forms of software architecture, is that the very early precursors do not provide that much bang for the buck. If you look at the slightly depressed eyespot of step 2 in Figure 2 above, you can imagine that it probably did not provide very much of a selective advantage in the Precambrian, with all those blind and passive predators stumbling around in the dark, and it probably was not that great at locating prey either. So innovative new technologies, like eyeballs or the Internet, seem to languish for hundreds of millions of years (or seconds), waiting for a blasting cap to go off to really get things started because, initially, these new technologies are just not that great at doing what they ultimately can do. However, once these new technologies do catch fire, they then seem to rapidly explode out into dominance, like the white-hot ball of gas at 5,000 0K from the blast of nitroglycerine in a stick of dynamite. I like to think of this supplement to the Light Switch theory of the Cambrian Explosion as the Dynamite Model of the Cambrian Explosion. Just think of a stick of dynamite with an ungrounded blasting cap, patiently waiting for a stray voltage to come along and set it off. I think the Dynamite Model can help to explain the long gap between the onset of multicellular organisms about 900 million years ago, and the Cambrian Explosion that followed about 400 million years later.

So perhaps the Cambrian Explosion really got started by some soft-bodied trilobites that became stranded in a region with very few prey, and that whatever those trilobites were using to find prey at the time, was no longer sufficient to keep them alive for very long. Now along comes a single trilobite with a mutation that provided for a slightly better-than-usual visual field from its very primitive precursor of a compound eye, and that single, lone, hungry trilobite managed to spot a small wiggling worm on the seafloor within striking range. As with the evolutionary history of software, such a minor event would quickly get lost in the daily noise of everyday life, and that is why it is so difficult to put your finger on the exact cause of a technological explosion like the Cambrian Explosion, but I bet that something like that is all that it took.

Comments are welcome at scj333@sbcglobal.net

To see all posts on softwarephysics in reverse order go to:
https://softwarephysics.blogspot.com/

Regards,
Steve Johnston