<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30536174</id><updated>2012-01-25T14:54:30.702-08:00</updated><title type='text'>SoftwarePhysics</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30536174.post-2523718091531273067</id><published>2012-01-24T14:15:00.000-08:00</published><updated>2012-01-24T14:20:13.607-08:00</updated><title type='text'>Introduction to Softwarephysics</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;Softwarephysics is a simulated science for the simulated Software Universe that we are all immersed in. It is an approach to software development, maintenance, and support based upon concepts from physics, chemistry, biology, and geology that I have been using on a daily basis for over 30 years as an IT professional.  For those of you not in the business, IT is short for Information Technology, commercial computer science. The purpose of softwarephysics is to explain why IT is so difficult, to suggest possible remedies, and to provide a direction for thought.  If you are an IT professional, general computer user, or simply an individual interested in computer science, physics, chemistry, biology, or geology then softwarephysics might be of interest to you, if not in an entirely serious manner, perhaps at least in an entertaining one.&lt;br /&gt;&lt;br /&gt;From 1975 – 1979, I was an exploration geophysicist exploring for oil, first with Shell, and then with Amoco. In 1979, I made a career change into IT, and spent about 20 years in development. For the past 10 years, I have been in IT operations, supporting middleware on Tuxedo and WebSphere. When I transitioned into IT from geophysics, I figured if you could apply physics to geology; why not apply physics to software? So like the exploration team at Amoco that I had just left, consisting of geologists, geophysicists, paleontologists, geochemists, and petrophysicists, I decided to take all the physics, chemistry, biology, and geology that I could muster and throw it at the problem of software. The basic idea was that many concepts in physics, chemistry, biology, and geology suggested to me that the IT community had accidentally created a pretty decent computer simulation of the physical Universe on a grand scale, a Software Universe so to speak, and that I could use this fantastic simulation in reverse, to better understand the behavior of commercial software, by comparing software to how things behaved in the physical Universe. Softwarephysics depicts software as a virtual substance, and relies upon our understanding of the current theories in physics, chemistry, biology, and geology to help us model the nature of software behavior. So in physics we use software to simulate the behavior of the Universe, while in softwarephysics we use the Universe to simulate the behavior of software. Along these lines, we use the Equivalence Conjecture of Softwarephysics as an aid; it allows us to shift back and forth between the Software Universe and the physical Universe, and hopefully to learn something about one by examining the other:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; The Equivalence Conjecture of Softwarephysics &lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Over the past 70 years, through the uncoordinated efforts of over 50 million independently acting programmers to provide the world with a global supply of software, the IT community has accidentally spent more than $10 trillion creating a computer simulation of the physical Universe on a grand scale – the Software Universe.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Logical Positivism and Effective Theories&lt;/strong&gt;&lt;br /&gt;Many IT professionals have a difficult time with softwarephysics because they think of physics as being limited to the study of real things like electrons and photons, and since software is not “real”, how can you possibly apply concepts from physics and the other sciences to software?  To address this issue, softwarephysics draws heavily upon two concepts from physics that have served physics quite well over the past century – the concept of logical positivism and the concept of effective theories.  This was not always the case. In the 17th, 18th, and 19th centuries, physicists mistakenly thought that they were actually discovering the fundamental laws of the Universe, which they thought were based upon real tangible things like particles, waves, and fields.  Classical Newtonian mechanics (1687), thermodynamics (1850), and classical electrodynamics (1864) did a wonderful job of describing the everyday world at the close of the 19th century, but early in the 20th century it became apparent that the models upon which these very successful theories were based did not work very well for small things like atoms or for objects moving at high velocities or in strong gravitational fields.  This provoked a rather profound philosophical crisis within physics at the turn of the century, as physicists worried that perhaps 300 years of work was about to go down the drain. The problem was that classical physicists confused their models of reality with reality itself, and when their classical models began to falter, their confidence in physics began to falter as well.  This philosophical crisis was resolved with the adoption of the concepts of logical positivism and some new effective theories in physics.  Quantum mechanics (1926) was developed for small things like atoms, the special theory of relativity (1905) was developed for objects moving at high velocities and the general theory of relativity (1915) was developed for objects moving in strong gravitational fields. &lt;br /&gt; &lt;br /&gt;Logical positivism, usually abbreviated simply to positivism, is an enhanced form of empiricism, in which we do not care about how things “really” are; we are only interested with how things are observed to behave.  With positivism, physicists only seek out models of reality - not reality itself.  When we study quantum mechanics, we will find that the concept of reality gets rather murky in physics anyway, so this is not as great a loss as it might at first seem.  By concentrating on how things are observed to behave, rather than on what things “really” are, we avoid the conundrum faced by the classical physicists. In retrospect, this idea really goes all the way back to the very foundations of physics.  In Newton’s &lt;em&gt;Principia&lt;/em&gt; (1687) he outlined Newtonian mechanics and his theory of gravitation, which held that the gravitational force between two objects was proportional to the product of their masses divided by the square of the distance between them.  Newton knew that he was going to take some philosophical flack for proposing a mysterious force between objects that could reach out across the vast depths of space with no apparent mechanism, so he took a very positivistic position on the matter with the famous phrase "I feign no hypotheses". Instead, Newton focused on how things were observed to move under the influence of his law of gravitational attraction, without worrying about what gravity “really” was.&lt;br /&gt;&lt;br /&gt;The second concept, that of effective theories, is an extension of positivism.  An effective theory 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 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.  So all of the current theories of physics, such as Newtonian mechanics, classical electrodynamics, thermodynamics, statistical mechanics, the special and general theories of relativity, quantum mechanics, and the quantum field theories of QED and QCD are 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. That is the goal of softwarephysics – to provide for an effective theory of software behavior that makes useful predictions of software behavior that are applicable to the day-to-day activities of IT professionals.  So in softwarephysics, we adopt a very positivistic viewpoint of software; we do not care what software “really is”, we only care about how software is observed to behave and try to model those behaviors with an effective theory of software behavior 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.&lt;br /&gt;&lt;br /&gt;GPS satellites provide a very good example of positivism and effective theories at work. There are currently 31 GPS satellites orbiting at an altitude of 12,600 miles above the Earth, and each contains a very accurate atomic clock. The signals from the GPS satellites travel to your GPS unit at the speed of light, so by knowing the travel time of the signals from at least 4 of the GPS satellites, it is possible to determine your position on Earth very accurately. In order to do that, it is very important to have very accurate timing measurements. Newtonian mechanics is used to launch the GPS satellites to an altitude of 12,600 miles and to keep them properly positioned in orbit.  Classical electrodynamics is then used to beam the GPS signals back down to Earth to the GPS unit in your car.  Quantum mechanics is used to build the transistors on the chips onboard the GPS satellites and to understand the quantum tunneling of electrons in the flash memory chips used to store GPS data on the satellites.  The special theory of relativity predicts that the onboard atomic clocks on the GPS satellites will run slower and lose about 7.2 microseconds per day due to their high velocities relative to an observer on the Earth. But at the same time, the general theory of relativity also predicts that because the GPS satellites are further from the center of the Earth and in a weaker gravitational field, where spacetime is less deformed than on the surface of the Earth, their atomic clocks also run faster and gain 45.9 microseconds per day due to the weaker gravitational field out there. The net effect is a gain of 38.7 microseconds per day, so the GPS satellite atomic clocks have to be purposefully built to run slow by 38.7 microseconds per day before they are launched, so that they will keep in sync with clocks on the surface of the Earth. If this correction were not made, an error in your position of 100 yards/day would accrue.  The end result of the combination of all these fundamentally flawed effective theories is that it is possible to pinpoint your location on Earth to an accuracy of 16 feet or better for as little as $100.  By the way, GPS units are a wonderful example of Johnston’s Law:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Johnston’s Law&lt;/strong&gt; - All technology tends to converge to a price of less than $100.&lt;br /&gt;&lt;br /&gt;In fact, I bought a TomTom GPS unit with lifetime traffic and map updates for $99 for my wife’s 2010 Christmas present.  But physics has done even better than that with its fundamentally flawed effective theories.  By combining the effective theories of special relativity (1905) with quantum mechanics (1926), physicists were able to produce a new effective theory for the behavior of electrons and photons called quantum electrodynamics QED (1948) which was able to predict the gyromagnetic ratio of the electron, a measure of its intrinsic magnetic field, to an accuracy of 11 decimal places.  As Richard Feynman has pointed out, this was like predicting the exact distance between New York and Los Angeles accurate to the width of a human hair!&lt;br /&gt;&lt;br /&gt;So Newtonian mechanics makes great predictions for the macroscopic behavior of GPS satellites, but it does not work very well for small things like the behavior of individual electrons within transistors, where quantum mechanics is required, or for things moving at high speeds or in strong gravitational fields where relativity theory must be applied.  And all three of these effective theories are based upon completely contradictory models.  General relativity maintains that spacetime is curved by matter and energy, but that matter and energy are continuous, while quantum mechanics maintains that spacetime is flat, but that matter and energy are quantized into chunks.  Newtonian mechanics simply states that space and time are mutually independent dimensions and universal for all, with matter and energy being continuous.  The important point is that all effective theories and scientific models are approximations – they are all fundamentally "wrong". But knowing that you are "wrong" gives you a great advantage over people who know that they are "right", because knowing that you are "wrong" allows you to seek improved models of reality. So please consider softwarephysics to simply be an effective theory of software behavior that is based upon models that are fundamentally “wrong”, but at the same time, fundamentally useful for IT professionals.  So as you embark upon your study of softwarephysics, please  always keep in mind that the models of softwarephysics are just approximations of software behavior, they are not what software “really is”.  It is very important not to confuse models of software behavior with software itself, if one wishes to avoid the plight of the 19th century classical physicists.&lt;br /&gt;&lt;br /&gt;If you are an IT professional and many of the above concepts are new to you, do not be concerned.  This blog on softwarephysics is aimed at a diverse audience, but with IT professionals in mind.  All of the above ideas will be covered at great length in the postings in this blog on softwarephysics and in a manner accessible to all IT professionals.  Now it turns out that most IT professionals have had some introduction to physics in high school or in introductory college courses, but that presents an additional problem.  The problem is that such courses generally only cover classical physics, and leave the student with a very good picture of physics as it stood in 1864!  It turns out that the classical physics of Newtonian mechanics, thermodynamics, and classical electromagnetic theory were simply too good to discard and are still quite useful, so they are taught first to beginners and then we run out of time to cover the really interesting physics of the 20th century.  Now imagine the problems that the modern world would face if we only taught similarly antiquated courses in astronomy, metallurgy, electrical and mechanical engineering, medicine, economics, biology, or geology that happily left students back in 1864!  Since many of the best models for software behavior stem from 20th century physics, we will be covering a great deal of 20th century material in these postings – the special and general theories of relativity, quantum mechanics, quantum field theories, and chaos theory, but I hope that you will find that these additional effective theories are quite interesting on their own, and might even change your worldview of the physical Universe at the same time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Unintended Consequences for the Scientific Community&lt;/strong&gt;&lt;br /&gt;As I mentioned at the close of my original posting on &lt;a href="http://softwarephysics.blogspot.com/2006/07/softwarephysics.html"&gt;SoftwarePhysics&lt;/a&gt;, my initial intention for this blog on softwarephysics was to fulfill a promise I made to myself about 20 years ago to approach the IT community with the concept of softwarephysics a second time, following my less than successful attempt to do so in the 1980s, with the hope of helping the IT community to better cope with the daily mayhem of life in IT.  However, in laying down the postings for this blog an unintended consequence arose in my mind as I became profoundly aware of the enormity of this vast computer simulation of the physical Universe that the IT community has so graciously provided to the scientific community free of charge and also of the very significant potential scientific value that it provides.  One of the nagging problems for many of the observational and experimental sciences is that many times there is only one example readily at hand to study or experiment with, and it is very difficult to do meaningful statistics with a population of N=1.&lt;br /&gt;&lt;br /&gt;But the computer simulation of the physical Universe that the Software Universe presents provides another realm for comparison. For example, both biology and astrobiology only have one biosphere on Earth to study and even physics itself has only one Universe with which to engage. Imagine the possibilities if scientists had another Universe readily at hand in which to work! This is exactly what the Software Universe provides. For example, in &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2009/04/new-introduction-to-softwarephysics.html"&gt;A Proposal For All Practicing Paleontologists&lt;/a&gt; we see that the evolution of software over the past 70 years has closely followed the same path as life on Earth over the past 4.0 billion years, in keeping with Simon Conway Morris’s contention that convergence has played the dominant role in the evolution of life on Earth.  In &lt;a href="http://softwarephysics.blogspot.com/2010/09/new-introduction-to-softwarephysics.html"&gt;When Toasters Fly&lt;/a&gt;, we also see that software has evolved in fits and starts as portrayed by the punctuated equilibrium of Stephen Jay Gould and Niles Eldredge, and in &lt;a href="http://softwarephysics.blogspot.com/2010/11/new-introduction-to-softwarephysics.html"&gt;The Adaptationist View of Software Evolution&lt;/a&gt; we explore the overwhelming power of natural selection in the evolution of software.  In keeping with Peter Ward’s emphasis on mass extinctions dominating the course of evolution throughout geological time, we also see in &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt; that there have been several dramatic mass extinctions of various forms of software over the past 70 years as well, that have greatly affected the evolutionary history of software, and that between these mass extinctions, software has also tended to evolve through the gradual changes of Hutton’s and Lyell’s uniformitarianism.  In &lt;a href="http://softwarephysics.blogspot.com/2008/07/introduction-to-softwarephysics-ii.html"&gt;Software Symbiogenesis&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, we also see the very significant role that parasitic/symbiotic relationships have played in the evolution of software, in keeping with the work of Lynn Margulis and also of Freeman Dyson’s two-stage theory of the origin of life on Earth.  In &lt;a href="http://softwarephysics.blogspot.com/2010/05/another-introduction-to-softwarephysics.html"&gt;The Origin of Software the Origin of Life&lt;/a&gt;, we explore Stuart Kauffman’s ideas on how Boolean nets of autocatalytic chemical reactions might have kick-started the whole thing as an emergent behavior of an early chaotic pre-biotic environment on Earth, and that if Seth Shostak is right, we will never end up talking to carbon-based extraterrestrial aliens, but to alien software instead. In &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics.html"&gt;Is the Universe Fine-Tuned for Self-Replicating Information?&lt;/a&gt; we explore the thermodynamics of Brandon Carter’s Weak Anthropic Principle (1973), as it relates to the generation of universes in the multiverse that are capable of sustaining intelligent life.  Finally, in &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics_25.html"&gt;Programming Clay&lt;/a&gt; we revisit Alexander Graham Cairns-Smith’s theory (1966) that Gene 1.0 did not run on nucleic acids, but on clay microcrystal precursors instead.&lt;br /&gt;&lt;br /&gt;Similarly for the physical sciences, in &lt;a href="http://softwarephysics.blogspot.com/2008/03/is-universe-quantum-computer.html"&gt;Is the Universe a Quantum Computer?&lt;/a&gt; we find a correspondence between TCP/IP and John Cramer’s Transactional Interpretation of quantum mechanics.  In &lt;a href="http://softwarephysics.blogspot.com/2006/07/softwarephysics.html"&gt;SoftwarePhysics&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2007/12/cyberspacetime.html"&gt;Cyberspacetime&lt;/a&gt;, we also see that the froth of CPU processes running with a clock speed of 10&lt;sup&gt;9&lt;/sup&gt; Hz on the 10 trillion currently active microprocessors that comprise the Software Universe can be viewed as a slowed down simulation of the spin-foam froth of interacting processes of loop quantum gravity running with a clock speed of 10&lt;sup&gt;43&lt;/sup&gt; Hz that may comprise the physical Universe.  And in &lt;a href="http://softwarephysics.blogspot.com/2008/04/introduction-to-softwarephysics.html"&gt;Software Chaos&lt;/a&gt;, we examine the nonlinear behavior of software and some of its emergent behaviors and follow up in &lt;a href="http://softwarephysics.blogspot.com/2009/02/introduction-to-softwarephysics-ii.html"&gt;CyberCosmology&lt;/a&gt; with the possibility that vast quantities of software running on large nonlinear networks might eventually break out into consciousness in accordance with the work of George Dyson and Daniel Dennett. Finally, in &lt;a href="http://softwarephysics.blogspot.com/2011/01/new-introduction-to-softwarephysics.html"&gt;Model-Dependent Realism - A Positivistic Approach to Realism&lt;/a&gt; we compare Steven Weinberg’s realism with the model-dependent realism of Stephen Hawking and Leonard Mlodinow and how the two worldviews affect the search for a Final Theory.&lt;br /&gt;&lt;br /&gt;The chief advantage of doing fieldwork in the Software Universe is that, unlike most computer simulations of the physical Universe, it is an unintended and accidental simulation, without any of the built-in biases that most computer simulations of the physical Universe suffer.  So you will truly be able to do fieldwork in a pristine and naturally occuring simulation, just as IT professionals can do fieldwork in the wild and naturally occuring simulation of software that the living things of the biosphere provide.  Secondly, the Software Universe is a huge simulation that is far beyond the budgetary means of any institution or consortium by many orders of magnitude. So if you are an evolutionary biologist, astrobiologist, or paleontologist working on the origin and evolution of life in the Universe, or a physicist or economist working on the emergent behaviors of nonlinear systems and complexity theory, or a neurobiologist working on the emergence of consciousness in neural networks, or even a frustrated string theorist struggling with quantum gravity, it would be well worth your while to pay a friendly call upon the local IT department of a major corporation in your area.  Start with a visit to the Command Center for their IT Operations department to get a global view of their IT infrastructure and to see how it might be of assistance to the work in your area of interest.  From there you can branch out to the applicable area of IT that will provide the most benefit.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Softwarephysics and the Real World of Human Affairs&lt;/strong&gt;&lt;br /&gt;Having another universe readily at hand to explore, even a simulated universe like the Software Universe, necessarily has an impact upon ones personal philosophy of life, and allows one to draw certain conclusions about the human condition and what’s it all about, so as you read through the postings in this blog you will stumble across a bit of my own personal philosophy - definitely a working hypothesis still in the works.  Along these lines you might be interested in a few postings where I try to apply softwarephysics to the real world of human affairs:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/2008/09/new-introduction-to-softwarephysics.html"&gt;MoneyPhysics&lt;/a&gt; – my impression of the 2008 world financial meltdown.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/2008/07/intro.html"&gt;The Fundamental Problem of Everything&lt;/a&gt; – If you Google "the fundamental problem of everything", this will be the only hit you get on the entire Internet, which is indicative of the fundamental problem of everything!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html"&gt;What’s It All About?&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2011/06/new-introduction-to-softwarephysics.html"&gt;Genes, Memes and Software&lt;/a&gt; – my current working hypothesis on what’s it all about.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Some Specifics About These Postings&lt;/strong&gt;&lt;br /&gt;The postings in this blog are a supplemental reading for my course on softwarephysics for IT professionals entitled &lt;em&gt;SoftwarePhysics 101 – The Physics of Cyberspacetime&lt;/em&gt;, which was originally designed to be taught as a series of seminars at companies where I was employed.  Since softwarephysics essentially covers the simulated physics, chemistry, biology, and geology of an entire simulated universe, the slides necessarily just provide a cursory skeleton upon which to expound.  The postings in this blog go into much greater depth. Because each posting builds upon its predecessors, the postings in this blog should be read in reverse order from the oldest to the most recent, beginning with my original posting on &lt;a href="http://softwarephysics.blogspot.com/2006/07/softwarephysics.html"&gt;SoftwarePhysics&lt;/a&gt;. In addition, several universities also now offer courses on Biologically Inspired Computing which cover some of the biological aspects of softwarephysics, and the online content for some of these courses can be found by Googling for "Biologically Inspired Computing" or "Natural Computing". At this point we will finish up with my original plan for this blog on softwarephysics with a purely speculative posting on &lt;a href="http://softwarephysics.blogspot.com/2009_02_01_archive.html"&gt;CyberCosmology&lt;/a&gt; that describes the origins of the Software Universe, cyberspacetime, software and where they all may be heading.  Since &lt;a href="http://softwarephysics.blogspot.com/2009_02_01_archive.html"&gt;CyberCosmology&lt;/a&gt; will be purely speculative in nature, it will not be of much help to you in your IT professional capacities, but I hope that it might be a bit entertaining.  Again, if you are new to softwarephysics, you really need to read the previous posts before taking on &lt;a href="http://softwarephysics.blogspot.com/2009_02_01_archive.html"&gt;CyberCosmology&lt;/a&gt;. I will probably continue on with some additional brief observations about softwarephysics in the future, but once you have completed &lt;a href="http://softwarephysics.blogspot.com/2009/02/introduction-to-softwarephysics-ii.html"&gt;CyberCosmology&lt;/a&gt;, you can truly consider yourself to be a bona fide softwarephysicist.&lt;br /&gt;&lt;br /&gt;For those of you following this blog, the posting dates on the posts may seem to behave in a rather bizarre manner.  That is because in order to get the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt; listed as the first post in the context root of &lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt; I have to perform a few IT tricks.  When publishing a new posting, I simply copy the contents of the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt; to a new posting called the New Introduction to Softwarephysics.  Then I update the original &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt; entry with the title and content of the new posting to be published.  I then go back and take “New” out of the title of the New Introduction to Softwarephysics.  This way the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt; always appears as the first posting in the context root of &lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;.  The side effect of all this is that the real posting date of posts is the date that appears on the post that you get when clicking on the &lt;font color="blue"&gt;Newer Post&lt;/font&gt; link at the bottom left of the posting webpage.&lt;br /&gt;&lt;br /&gt;For those of you who would rather listen to the postings in this blog as a podcast, you may listen to the most recent postings at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://podcasts.odiogo.com/softwarephysics/podcasts-html.php"&gt;http://podcasts.odiogo.com/softwarephysics/podcasts-html.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;thanks to the efforts of Rudolf Penninkhof who registered this blog with Odiogo.&lt;br /&gt;  &lt;br /&gt;For audio versions of older postings, please contact me at the email address below, and I will send you the MP3 files. The postings in this blog were converted to streaming audio by a company called Odiogo, which has some really great software for automatically “reading” text from the Internet and converting it to dynamic audio that sounds very much like a human voice, complete with very accurate pronunciations and tonal inflections.  In fact, I have recommended my current employer look into using Odiogo text-to-audio services for our external websites.  I have a DSL broadband connection with a 3 MB download.  Some of the audio postings on the Odiogo website above come in at over 70 MB and run for several hours.  My DSL seems to have trouble with buffering these very large postings because they are probably much larger than Odiogo anticipated for dynamic news feeds.  If you have the same difficulty, just download the corresponding MP3 files, and you will be able to listen to my very long-winded postings that run for several hours.  You will probably need to take a break anyway.  I know that even I cannot listen to them all in one sitting! Once again, I would like to thank Google for hosting this blog and providing some really great software for creating and maintaining the postings, and also to Rudolf Penninkhof and Odiogo for converting the postings to a podcast as well.&lt;br /&gt; &lt;br /&gt;&lt;em&gt; SoftwarePhysics 101 – The Physics of Cyberspacetime&lt;/em&gt; is now available on Google Docs. Please note that some of the formulas do not render properly, especially exponents which do not display as superscripts, so please use your imagination.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.google.com/Presentation?id=dhjzddgs_0c6jmntfn"&gt;Part 1&lt;/a&gt; - Part 1 of the original PowerPoint document.&lt;br /&gt;&lt;a href="http://docs.google.com/Presentation?id=dhjzddgs_104gqc6pgsh"&gt;Part 2&lt;/a&gt; - Part 2 of the original PowerPoint document.&lt;br /&gt;&lt;a href="http://spreadsheets.google.com/pub?key=p5cpPv_5zWC90AB4LWEy1IQ"&gt;Entropy&lt;/a&gt; – A spreadsheet referenced in Part 1&lt;br /&gt;&lt;a href="http://docs.google.com/Doc?id=dhjzddgs_156dfzhf6kh"&gt;BSDE&lt;/a&gt; – A 1989 document describing how to use BSDE - the Bionic Systems Development Environment - to grow applications from genes and embryos within the maternal BSDE software.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-2523718091531273067?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/2523718091531273067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=2523718091531273067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2523718091531273067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2523718091531273067'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2012/01/new-introduction-to-softwarephysics.html' title='Introduction to Softwarephysics'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-7755067686201690422</id><published>2011-12-06T17:26:00.000-08:00</published><updated>2012-01-25T14:54:30.723-08:00</updated><title type='text'>How Software Evolves</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished &lt;em&gt;Evolutionary Analysis&lt;/em&gt; (2004) by Scott Freeman and Jon Herron, which is a college textbook on evolutionary biology.  As I mentioned in &lt;a href="http://softwarephysics.blogspot.com/2008/10/introduction-to-softwarephysics.html"&gt;How to Think Like a Softwarephysicist&lt;/a&gt;, 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 &lt;em&gt;Evolutionary Analysis&lt;/em&gt;, 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.&lt;br /&gt; &lt;br /&gt;In the &lt;strong&gt;SoftwarePaleontology&lt;/strong&gt; section of &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Genetic Mutation&lt;/strong&gt; - 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 &lt;em&gt;Homo sapiens&lt;/em&gt; 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 &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt; 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 quit 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Genetic Migration&lt;/strong&gt; - 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 onboard 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Genetic Drift&lt;/strong&gt; - 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 is 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Natural Selection&lt;/strong&gt; - 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Evolutionary Processes at Work in IT&lt;/strong&gt;&lt;br /&gt;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: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DNA → mRNA → tRNA → Amino Acid chain → Protein&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://softwarephysics.blogspot.com/2007/12/quantum-software.html"&gt;Quantum Software&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/01/softwarechemistry.html"&gt;SoftwareChemistry&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;For example consider the line of code:  &lt;br /&gt;&lt;br /&gt;discountedTotalCost = (totalHours * ratePerHour) - costOfNormalOffset;&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;C = 01000011 = ↓ ↑ ↓ ↓ ↓ ↓ ↑ ↑&lt;br /&gt;H = 01001000 = ↓ ↑ ↓ ↓ ↑ ↓ ↓ ↓&lt;br /&gt;N = 01001110 = ↓ ↑ ↓ ↓ ↑ ↑ ↑ ↓&lt;br /&gt;O = 01001111 = ↓ ↑ ↓ ↓ ↑ ↑ ↑ ↑&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yPSJ2-AOMFU/SVOPRoHwMkI/AAAAAAAAAMw/v-jnGr51kjs/s1600-h/carbon.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 78px;" src="http://4.bp.blogspot.com/_yPSJ2-AOMFU/SVOPRoHwMkI/AAAAAAAAAMw/v-jnGr51kjs/s320/carbon.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283724320826208834" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – The electron configuation of a carbon atom is similar to the ASCII code for the letter C in the source code of a program (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;Thus each variable in a line of code can be considered to be a complex molecule interacting with other complex molecules.&lt;br /&gt;&lt;br /&gt;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 from the perspective of the Modern Synthesis.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-1h67Uu1vIIA/Tx_926LZtsI/AAAAAAAAAT4/udJifeg_lwU/s1600/C-Average.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 357px; height: 400px;" src="http://2.bp.blogspot.com/-1h67Uu1vIIA/Tx_926LZtsI/AAAAAAAAAT4/udJifeg_lwU/s400/C-Average.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5701554773046179522" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 2– Source code for a C program that calculates and average of several numbers entered at the keyboard&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-3BCF1-Yx_z8/Tx8vwhGjt0I/AAAAAAAAATg/looM4e9-LdE/s1600/C%252B%252B_Average.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 355px;" src="http://3.bp.blogspot.com/-3BCF1-Yx_z8/Tx8vwhGjt0I/AAAAAAAAATg/looM4e9-LdE/s400/C%252B%252B_Average.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5701328163840440130" /&gt;&lt;/a&gt; &lt;br /&gt;Figure 3 – Source code for a C++ program that calculates and average of several numbers entered at the keyboard.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-CeQl4zTRkoY/Tx__Hl2TFyI/AAAAAAAAAUE/jpnBOHexLjQ/s1600/Java_Average.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 335px;" src="http://3.bp.blogspot.com/-CeQl4zTRkoY/Tx__Hl2TFyI/AAAAAAAAAUE/jpnBOHexLjQ/s400/Java_Average.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5701556159158359842" /&gt;&lt;/a&gt;&lt;br /&gt;Figure 4 – Source code for a Java program that calculates and average of several numbers entered at the keyboard.&lt;br /&gt;&lt;br /&gt;In the &lt;strong&gt;SoftwarePaleontology&lt;/strong&gt; section of &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;, 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 10&lt;sup&gt;16&lt;/sup&gt; times faster than a Z3, or 10 million billion times faster.  In &lt;a href="http://softwarephysics.blogspot.com/2011/10/new-introduction-to-softwarephysics.html"&gt;Is Self-Replicating Information Inherently Self-Destructive?&lt;/a&gt;, 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 530 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.&lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mutation of Source Code&lt;/strong&gt;&lt;br /&gt;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 &lt;a href="http://softwarephysics.blogspot.com/2007/10/entropy-bane-of-programmers.html"&gt;Entropy - the Bane of Programmers&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt; 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 &lt;a href="http://softwarephysics.blogspot.com/2008/04/introduction-to-softwarephysics.html"&gt;Software Chaos&lt;/a&gt; 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. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Genetic Migration of Source Code&lt;/strong&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Genetic Drift of Source Code&lt;/strong&gt;&lt;br /&gt;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 &lt;strong&gt;SoftwarePaleontology&lt;/strong&gt; section of &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt; for details on the evolution of coding techniques.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Natural Selection of Source Code&lt;/strong&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Software Development Life Cycle From the Perspective of the Modern Synthesis&lt;/strong&gt;&lt;br /&gt;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 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:&lt;br /&gt;&lt;br /&gt;borrow some old code → modify code → test → fix code → test → borrow some more old code →  modify code → test → fix code → test ....&lt;br /&gt;&lt;br /&gt;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, software has tended to evolve over the past 70 years about 60 million times faster than life on Earth.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-7755067686201690422?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/7755067686201690422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=7755067686201690422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/7755067686201690422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/7755067686201690422'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/12/new-introduction-to-softwarephysics.html' title='How Software Evolves'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yPSJ2-AOMFU/SVOPRoHwMkI/AAAAAAAAAMw/v-jnGr51kjs/s72-c/carbon.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-537920881032721606</id><published>2011-11-22T13:35:00.000-08:00</published><updated>2011-12-07T15:10:12.679-08:00</updated><title type='text'>An IT Perspective of the Cambrian Explosion</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished reading &lt;em&gt;In the Blink of an Eye&lt;/em&gt; (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 as 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 530 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:&lt;br /&gt;&lt;br /&gt;&lt;font color="blue"&gt;1. Why did it happen so quickly, once it got started? &lt;/font&gt;&lt;br /&gt;&lt;font color="blue"&gt;2. Why did it take so long to finally happen? &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Design Patterns – the Phyla of IT&lt;/strong&gt;&lt;br /&gt;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, &lt;em&gt;Homo sapiens&lt;/em&gt; 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 &lt;em&gt;Notes on the Synthesis of Form&lt;/em&gt; (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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Light Switch Theory of the Cambrian Explosion&lt;/strong&gt;&lt;br /&gt;In &lt;em&gt;In the Blink of an Eye&lt;/em&gt;, 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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-gog6riKYzT4/Tt7Cf-W8ZPI/AAAAAAAAASw/hgPLAjzKCCc/s1600/trilobite.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 369px; height: 276px;" src="http://4.bp.blogspot.com/-gog6riKYzT4/Tt7Cf-W8ZPI/AAAAAAAAASw/hgPLAjzKCCc/s400/trilobite.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5683193634359108850" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – Fossil of a trilobite with eyes (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;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.&lt;br /&gt;&lt;br /&gt;Parker’s Light Switch theory for the Cambrian Explosion goes a long way in explaining question number one outlined above:&lt;br /&gt;&lt;br /&gt;&lt;font color="blue"&gt;1. Why did it happen so quickly, once it got started?&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;but it does not explain question number two very well:&lt;br /&gt;&lt;br /&gt;&lt;font color="blue"&gt;2. Why did it take so long to finally happen? &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Because question number two now really becomes:&lt;br /&gt;&lt;br /&gt;&lt;font color="blue"&gt;2. Why did it take so long for a practical eye to evolve?&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why Did It Take So Long For the Eye to Evolve?&lt;/strong&gt;&lt;br /&gt;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: &lt;strong&gt;&lt;font color="blue"&gt;|&lt;/font&gt;&lt;/strong&gt;.  In the next step, the eyespot forms a slight depression, like the beginnings of the letter &lt;strong&gt;&lt;font color="blue"&gt;C&lt;/font&gt;&lt;/strong&gt;, 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 &lt;strong&gt;&lt;font color="blue"&gt;C&lt;/font&gt;&lt;/strong&gt;.  As the depression deepens and the hole in the &lt;strong&gt;&lt;font color="blue"&gt;C&lt;/font&gt;&lt;/strong&gt; 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 &lt;strong&gt;&lt;font color="blue"&gt;C&lt;/font&gt;&lt;/strong&gt;.  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: &lt;strong&gt;&lt;font color="blue"&gt;C)&lt;/font&gt;&lt;/strong&gt;.  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: &lt;strong&gt;&lt;font color="blue"&gt;C0)&lt;/font&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-f-UPfhBhinM/Tt7DZdaYm_I/AAAAAAAAAS8/aZai5Wod0GI/s1600/evolution_of_eye.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://2.bp.blogspot.com/-f-UPfhBhinM/Tt7DZdaYm_I/AAAAAAAAAS8/aZai5Wod0GI/s400/evolution_of_eye.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5683194621947583474" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 2 – Computer simulations of the evolution of a camera-like eye(click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-w9Mtun761L0/Tt7EG0dH2HI/AAAAAAAAATI/PauXX9t_3h4/s1600/Eye.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 209px;" src="http://3.bp.blogspot.com/-w9Mtun761L0/Tt7EG0dH2HI/AAAAAAAAATI/PauXX9t_3h4/s400/Eye.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5683195401227196530" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;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)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;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 &lt;em&gt;In the Blink of an Eye&lt;/em&gt;, 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.&lt;br /&gt;&lt;br /&gt;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 some place.  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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using the Evolutionary History of Software as a Model for the Cambrian Explosion&lt;/strong&gt;&lt;br /&gt;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 &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; 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 60 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 &lt;strong&gt;SoftwarePaleontology&lt;/strong&gt; section of &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt; 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 &amp;#126; 1 year of geological time, and that a billion seconds is about 32 years.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Mainframe software&lt;/strong&gt; - 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Structured programming&lt;/strong&gt; -  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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. PC software&lt;/strong&gt;  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. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Object-oriented programming&lt;/strong&gt; - 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 Sroustrup 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Internet Explosion&lt;/strong&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. SOA – Service Oriented Architecture&lt;/strong&gt; - 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Was the Cambrian Explosion a Real Explosion?&lt;/strong&gt;&lt;br /&gt;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 &lt;a href="http://softwarephysics.blogspot.com/2010/09/new-introduction-to-softwarephysics.html"&gt;When Toasters Fly&lt;/a&gt;, 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 &lt;a href="http://softwarephysics.blogspot.com/2011/10/new-introduction-to-softwarephysics.html"&gt;Is Self-Replicating Information Inherently Self-Destructive?&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-RNEyzxq9cS4/TswZiphib4I/AAAAAAAAASk/EkFGdqL40jc/s1600/dynamite.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 185px;" src="http://3.bp.blogspot.com/-RNEyzxq9cS4/TswZiphib4I/AAAAAAAAASk/EkFGdqL40jc/s400/dynamite.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5677941313260121986" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;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)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;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!&lt;br /&gt;&lt;br /&gt;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 &lt;sup&gt;0&lt;/sup&gt;K 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-537920881032721606?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/537920881032721606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=537920881032721606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/537920881032721606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/537920881032721606'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/11/new-introduction-to-softwarephysics.html' title='An IT Perspective of the Cambrian Explosion'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-gog6riKYzT4/Tt7Cf-W8ZPI/AAAAAAAAASw/hgPLAjzKCCc/s72-c/trilobite.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-5832071615064605602</id><published>2011-10-29T12:19:00.001-07:00</published><updated>2011-11-23T06:29:33.020-08:00</updated><title type='text'>Is Self-Replicating Information Inherently Self-Destructive?</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished reading &lt;em&gt;The Medea Hypothesis&lt;/em&gt; (2009) by my most favorite paleontologist, Peter Ward.  I have read all of Ward’s books because they provide a deep insight into the evolutionary history of life on Earth over the past 4.0 billion years, and since living things and software are both forms of self-replicating information, his books can also provide some insights into the evolutionary history of software over the past 2.2 billion seconds, ever since Konrad Zuse cranked up his Z3 computer in May of 1941.  Indeed, because living things and software are both forms of self-replicating information that have evolved through the Darwinian mechanisms of innovation and natural selection, and both have converged upon similar paths through Daniel Dennett’s Design Space, as each had to deal with the second law of thermodynamics in a nonlinear Universe, there is much to be learned about the origin and evolution of life in the Universe by examining the origin and evolution of software on Earth (see &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology &lt;/a&gt; for details).  And this is a two-way street – much can also be learned about the nature of software evolution by examining the evolution of life on Earth.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;The Medea Hypothesis&lt;/em&gt;, Peter Ward proposes the antithesis of the Gaia hypothesis.  Gaia was the primordial Earth-goddess of the ancient Greeks, essentially the embodiment of a benevolent  Mother Nature, and in the 1970s, James Lovelock and Lynn Margulis proposed that as a whole, the entire biosphere behaved in a coordinated manner that was beneficial to the ongoing existence of life itself.  The Gaia hypothesis proposes that the biosphere as a whole manages to self-regulate the geophysical and geochemical processes of the Earth, by using negative feedback loops, in order to maintain the habitability of the Earth over billions of years.  An example of a negative feedback loop is your home furnace and thermostat.  When your house cools down below the lower set point of the thermostat, the thermostat sends a signal to your furnace to turn it on.  As your house warms up, it eventually exceeds the upper set point of the thermostat, and then the thermostat sends a signal to your furnace to shut it down.  In this way, your thermostat performs an automated regulation of the temperature within your house that keeps your house within a comfortable range of about 1&lt;sup&gt;0&lt;/sup&gt;F.  Notice that your thermostat manages to accomplish this seemingly sophisticated control process with no built-in intelligence or software whatsoever.  Negative feedback loops automatically keep systems in a stable equilibrium by simply pulling them back into a narrow range of operational conditions.  That is the beauty of using negative feedback loops to control complex systems – they lead to inherently stable and self-regulated systems, without the need of an overly complex control mechanism.  Here is another example of a negative feedback loop in action.  Extend both of your index fingers out in front and carefully place each end of a ruler on top of your two outstretched fingers.  Now slowly bring your fingers together, letting the ruler slide freely on top of each finger, as you bring your fingers closer together.  As you do so, you will find that the ruler always remains balanced upon your fingers, and you will end up with both fingers together precisely at the midpoint of the ruler.  Try as you may, you will not be able to obtain any other result.  You will always end up with the ruler carefully balanced at its midpoint on your two fingers, when your two fingers have finally met in the center.&lt;br /&gt;&lt;br /&gt;Positive feedback loops do just the opposite.  Positive feedback loops cause systems to explode out of control, by using the amplified output of the feedback loop as the input to the feedback loop, and thus causing the output to quickly expand out of control.  Explosives, like nitroglycerine, are therefore prime examples of positive feedback loops in action.  When nitroglycerine detonates, the liquid nitroglycerine rapidly decomposes via the chemical reaction:&lt;br /&gt;&lt;br /&gt;4 C&lt;sub&gt;3&lt;/sub&gt;H&lt;sub&gt;5&lt;/sub&gt;(NO&lt;sub&gt;3&lt;/sub&gt;)&lt;sub&gt;3&lt;/sub&gt;  &amp;#8594; 12 CO&lt;sub&gt;2&lt;/sub&gt; + 10 H&lt;sub&gt;2&lt;/sub&gt;O + 6 N&lt;sub&gt;2&lt;/sub&gt; + O&lt;sub&gt;2&lt;/sub&gt;&lt;br /&gt;&lt;br /&gt;Notice that the liquid nitroglycerine turns completely into gases at the temperature at which nitroglycerine detonates.  This alone generates gases that would occupy more than 1,200 times the original volume of the liquid at normal room temperature and pressure.  However, because the above chemical reaction is also very exothermic, meaning that it gives off large amounts of heat energy, the generated gases are raised to a temperature close to that of the surface of the Sun, about 5,000 &lt;sup&gt;0&lt;/sup&gt;K, which causes the generated gases to further greatly expand, creating a tremendous blast.  When nitroglycerine detonates, chemical potential energy is quickly released because the weak bonds of the atoms in the nitroglycerine molecules rearrange to form new molecules with stronger bonds, such as N&lt;sub&gt;2&lt;/sub&gt;, H&lt;sub&gt;2&lt;/sub&gt;O, and CO&lt;sub&gt;2&lt;/sub&gt;, releasing large quantities of chemical potential energy in the process.  Since higher temperatures make chemical reactions run even faster, when nitroglycerine detonates, the initial decomposition of a small number of molecules causes a pressure wave to form that detonates the nitroglycerine in the immediate surrounding area.  The resulting self-sustained shock wave propagates through the nitroglycerine at 30 times the speed of sound, as a near-instantaneous pressure-induced chemical reaction that transforms the small volume of liquid nitroglycerine into a huge quantity of white-hot gas at a temperature of 5,000 &lt;sup&gt;0&lt;/sup&gt;K.  This is what makes nitroglycerine such a powerful explosive.&lt;br /&gt;&lt;br /&gt;Nitroglycerin was first synthesized by the chemist Ascanio Sobrero in 1847, but the main problem with nitroglycerine was that the slightest shock could cause it to easily detonate.  In 1867, Alfred Nobel came up with an improvement to nitroglycerin that vastly improved its stability, and therefore its utility.  By simply mixing three parts of nitroglycerin, with one part of diatomaceous earth, and a small amount of sodium carbonate, Nobel created a very stable solid explosive, that we now call dynamite.  Dynamite rapidly became very popular because it could be rolled up into convenient paper-wrapped sticks that were very easily loaded into the drill holes used for blasting rock during mining operations, and dynamite was also very resistant to accidental detonation from small shocks.  In fact, in order to detonate dynamite, one must use a blasting cap or a high-temperature fuse to set it off.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-kHhoCjr2P9c/TswYfk0mJwI/AAAAAAAAASY/9fbLn8JNQaU/s1600/Feedback.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 188px;" src="http://3.bp.blogspot.com/-kHhoCjr2P9c/TswYfk0mJwI/AAAAAAAAASY/9fbLn8JNQaU/s400/Feedback.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5677940160946644738" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – Negative feedback loops regulate systems, while positive feedback loops cause systems to explode (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;The differences between positive and negative feedback loops can be further illustrated with the use of a few diagrams.  In the left side of Figure 1 we see a system composed of a marble and a bowl in a state of stable equilibrium under the influence of a negative feedback loop.  Jiggling the system with a small perturbation always results in the marble safely returning to the center of the bowl.  The shape of the bowl can also be thought of as a plot of the potential energy function of the system.  The combined system of the marble and the bowl has a minimum potential energy when the marble is safely in the center of the bowl, and the negative feedback loop has a tendency to keep the marble there.  On the right side of Figure 1, on the other hand,  we see a similar system composed of a marble on top of an overturned bowl that is an example of a positive feedback loop in an unstable equilibrium.  Like nitroglycerine, the slightest addition of energy to the system, by perturbing the system with a little jiggle, will cause the marble to roll off the overturned bowl with increasing velocity, as it quickly turns all of its potential energy into kinetic energy, like the atoms in a container of nitroglycerine rapidly turning their chemical potential energy into the kinetic energy of molecular motion, also known as heat energy.&lt;br /&gt;&lt;br /&gt;What Alfred Nobel did was to superimpose a small negative feedback loop on top of the very large positive feedback loop of nitroglycerine, by mixing nitroglycerine with a small amount of stabilizing diatomaceous earth and sodium carbonate.  In Figure 2, we see the resulting plot of the potential energy function for dynamite, consisting of the large positive feedback loop of nitroglycerine, with a small dimple of a negative feedback loop on top.  Now in order for the marble to release its vast amount of potential energy, it needs a quantity of activation energy to get the marble over the hump at the top of the curve.  This is why dynamite requires the detonation of a  blasting cap or the heat from a high-temperature fuse in order to detonate.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-RNEyzxq9cS4/TswZiphib4I/AAAAAAAAASk/EkFGdqL40jc/s1600/dynamite.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 185px;" src="http://3.bp.blogspot.com/-RNEyzxq9cS4/TswZiphib4I/AAAAAAAAASk/EkFGdqL40jc/s400/dynamite.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5677941313260121986" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 2 – In 1867, Alfred Nobel discovered that by adding some diatomaceous earth to nitroglycerin, he could superimpose a small negative feedback loop on top of the much larger positive feedback loop of nitroglycerin (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;In a similar manner, the Gaia hypothesis proposes that life on Earth has taken control of the Earth’s geophysical and geochemical processes, leaving those with negative feedback loops alone, and at the same time, domesticating the positive feedback processes that would, if left to their own devices, end life on Earth, by superimposing small negative feedback loops upon them.  According to the Gaia hypothesis, the biosphere has simply added a little diatomaceous earth to nitroglycerin as needed, in order to maintain the Earth in a stable equilibrium suitable to the needs of the biosphere.&lt;br /&gt;&lt;br /&gt;In&lt;em&gt;The Medea Hypothesis&lt;/em&gt;, Peter Ward proposes just the opposite.  Medea was also a character in ancient Greek mythology, the wife of Jason of the Golden Fleece fame.  When Jason abandoned Medea, she killed their two children as revenge, so Peter Ward rightfully thought that Medea represented just the opposite of the benevolent Mother Nature characterized by Gaia.  In&lt;em&gt;The Medea Hypothesis&lt;/em&gt;, Peter Ward proposes that because all forms of life in the Universe arise from the Darwinian processes of innovation honed by natural selection, that necessarily, all living things in the Universe are selected for the ability to modify their home planets with positive feedback loops that enhance the survivability of the individual, not negative feedback loops that enhance the survivability of all.  From Ward’s point of view, all living things resulting from Darwinian processes must necessarily select for living things that can self-replicate at all costs, with little consideration for their fellow beings sharing the 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 outstrip their resource base through positive feedback loops.&lt;br /&gt;&lt;br /&gt;In&lt;em&gt;The Medea Hypothesis&lt;/em&gt;, Peter Ward lists about a dozen examples from the deep past where the biosphere has precipitated Medean events that greatly reduced the diversity of life on Earth and greatly reduced its carrying capacity.  The first such event was the take over of life by DNA.  In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, I described Freeman Dyson’s two-stage theory for the origin of life on Earth.  In Dyson’s theory, metabolic protocells arise first and are later parasitized, first by RNA, and then by DNA.  So essentially a very diverse biosphere of metabolic protocells went through the most significant mass extinction in Earth’s history, to be totally replaced by a single form of DNA-based life.  Peter Ward considers the total extinction of all other forms of life by DNA about 4.0 billion years ago to be the most significant event supporting the Medea hypothesis.  The next major Medean event came about 2.8 billion years ago with the arrival of cyanobacteria on the scene.  The cyanobacteria could photosynthesize sunlight, water, and carbon dioxide into sugars, releasing the toxic gas oxygen as a byproduct.  Oxygen is a highly reactive gas and was very toxic to the anaerobic bacteria of the day.  For example, today anaerobic bacteria must hide from oxygen at the bottoms of stagnant seas and lakes.  But initially these ancient anaerobic bacteria were spared from the Oxygen Catastrophe which took place 300 million years later (2.5 billion years ago) because first all the dissolved iron in the oceans had to be oxidized and deposited as red-banded iron formations before the oxygen level could rise in the Earth’s atmosphere.  Chances are that your car was made from one of these iron deposits because they are the source of most of the world’s iron ore. So you can think of your car as a byproduct of early bacterial chemical warfare that nearly killed off all life on Earth.  But by far, the most disastrous of the Medean positive feedback loops caused by living things on Earth is the wholesale removal of carbon from the Earth’s surface.  Peter Ward explains that living things are constantly sucking carbon dioxide out of the Earth’s atmosphere and converting it to calcium carbonate shells that are later deposited upon the sea bottom.  As these carbonate deposits are subducted at the Earth’s subduction zones into the asthenosphere, some of the carbon is released by volcanoes as carbon dioxide, but most is lost to the Earth’s upper mantle, never to return to the Earth’s surface.  This is certainly a bad long-term thing for carbon-based life, and Ward shows that within the next 500 – 1,000 million years, the level of carbon dioxide in the Earth’s atmosphere will decline below the level that complex multicellular plants can use for photosynthesis, and that will be the end of complex multicelluar life on Earth.  So the end of complex life on Earth will come from life itself and not from an increasingly brighter Sun, as described in most popular books.  The game-changing paradigm shift of the Medea hypothesis, as opposed to the Gaia hypothesis, is that life on Earth as a whole is not necessarily acting in its own self-interest, so the solution to environmental problems may not simply be to remove mankind from the equation and let the biosphere return to its natural state.  Instead, Ward suggests that some geoengineering is in order to extend the habitability of the Earth.&lt;br /&gt;&lt;br /&gt;Peter Ward goes on to describe many other Medean events in the Earth’s history, where the biosphere has seemingly tried to do itself in with positive feedback loops gone wild.  One only has to look to our current suicidal habit of spewing 24 billion tons of carbon dioxide each year into the Earth’s atmosphere, and the impending disastrous consequences from global climate change with rising sea levels, to see a Medean event in progress in real time.  We have already raised the carbon dioxide level of the Earth’s atmosphere to 390 ppm, up from a level of about 280 ppm prior to the Industrial Revolution, and it is currently rising at the rate of 2.39 ppm per year.  As we saw in &lt;a href="http://softwarephysics.blogspot.com/2011/01/new-introduction-to-softwarephysics_28.html"&gt;How to Use Your IT Skills to Save the World&lt;/a&gt;, in the coming years, it will be rising at a rate of 3 or 4 ppm per year, as the demand for energy explodes with the increasing demand from the emerging economies of the world, and if it should ever reach a level of 1,000 ppm, we might even trigger another greenhouse gas mass extinction, like the Permian-Triassic mass extinction that nearly killed off all complex multicellular life 251 million years ago. Indeed, we seem to be running in a very close race.  Our genes, memes, and software are seemingly on the verge of morphing into a new form of conscious intelligence within the next 100 years or so that will probably be much less dependent upon the current pristine conditions on Earth that are very supportive of intelligent carbon-based life forms such as &lt;em&gt;Homo sapiens&lt;/em&gt;.  Perhaps this transition will occur before events get out of hand, or perhaps not.&lt;br /&gt;&lt;br /&gt;This brings up the fundamental issue of this posting – is all self-replicating information similarly doomed to self-destruction?  In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; I defined self-replicating information as:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Self-Replicating Information&lt;/strong&gt; – 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.&lt;br /&gt;&lt;br /&gt;with all forms of self-replicating information having the following characteristics in common:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Characteristics of Self-Replicating Information&lt;/strong&gt;&lt;br /&gt;1. All self-replicating information evolves over time through the Darwinian processes of 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.&lt;br /&gt;&lt;br /&gt;2. All self-replicating information begins spontaneously as a parasitic mutation that obtains energy, information and sometimes matter from a host.&lt;br /&gt;&lt;br /&gt;3. With time, the parasitic self-replicating information takes on a symbiotic relationship with its host.&lt;br /&gt;&lt;br /&gt;4. Eventually, the self-replicating information becomes one with its host through the symbiotic integration of the host and the self-replicating information.&lt;br /&gt;&lt;br /&gt;5. Ultimately, the self-replicating information replaces its host as the dominant form of self-replicating information.&lt;br /&gt;&lt;br /&gt;6. Most hosts are also forms of self-replicating information.&lt;br /&gt;&lt;br /&gt;7. All self-replicating information has to be a little bit nasty in order to survive.&lt;br /&gt;&lt;br /&gt;Since all forms of self-replicating information are Darwinian in nature, the Medea hypothesis would indicate by extension that all forms of self-replicating information are indeed self-destructive because of their tendency to create positive feedback loops that outstrip their resource base.  Software certainly seems to be guilty of this – it constantly outstrips the hardware base upon which it runs.  That is why you need to buy a new PC every four or five years and why IT departments have to constantly upgrade their mainframes and server farms with more powerful hardware.  I got my first PC at work  twenty-five years ago in 1986.  It was an IBM PC/AT with a 6 MHz Intel 80-286 processor and a 20 MB hard disk, with a total of 512 K of memory.  It cost about $1600 at the time - about $5,000 in 2011 dollars. Today, a $500 Dell PC comes with a 2.66 GHz dual core Intel Core i5 processor, 8 GB of memory, and a 320 GB hard disk.  So a $500 Dell comes with 16,384 times as much disk, 16,384 times as much memory, and runs about 1,000 times faster than my $5,000 IBM PC/AT did in 1986, but that $500 Dell PC will probably buckle under the software load running upon it five years from now.&lt;br /&gt;&lt;br /&gt;So perhaps the solution to Fermi’s Paradox is that all forms of self-replicating information self-destruct before they can embark upon exploring a galaxy.  Fermi’s Paradox, first proposed by Enrico Fermi over lunch one day in 1950, asks the question:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fermi’s Paradox&lt;/strong&gt; - If the universe is just chock full of intelligent beings, why do we not see any evidence of their existence?&lt;br /&gt;&lt;br /&gt;That is certainly a sobering thought.  But let us now turn to a more mundane application of the Medea hypothesis to the “real world” of human affairs, with which most &lt;em&gt;Homo sapiens&lt;/em&gt; are completely obsessed.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is the World Economy Also Medean in Nature?&lt;/strong&gt;&lt;br /&gt;As I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;, world capitalism is a Darwinian system of economics and also a form of self-replicating information in the form of a complicated financial meme-complex.  In &lt;a href="http://softwarephysics.blogspot.com/2008/09/new-introduction-to-softwarephysics.html"&gt;MoneyPhysics&lt;/a&gt;, and &lt;a href="http://softwarephysics.blogspot.com/2010/02/new-introduction-to-softwarephysics.html"&gt;MoneyPhysics Revisited&lt;/a&gt;, I also showed how positive feedback loops spinning out of control led to the collapse of the world financial systems in 1929 and 2008.&lt;br /&gt;&lt;br /&gt;Since capitalism is a Darwinian system of economics, capitalism must also be subject to the Medea hypothesis and, therefore, have an innate self-destructive nature because of its tendency to foster uncontrolled positive feedback loops that tend to do itself in.  So in that regard, Karl Marx may have been right about the self-destructive tendencies of capitalism.  However, Marx’s solution of creating a utopian "dictatorship of the proletariat" proved disastrous in the 20th century, as demonstrated by the failure of both socialism and communism.  After all, we are all just DNA survival machines, programmed to replicate and operate in our own self-interest, so attempts to establish utopian communist states in the 20th century, simply ended with the establishment of brutal oligarchies more reminiscent of feudalism than of a classless worker’s state.  Therefore, capitalism and free markets are the most natural way to run an economy through the miracle of Adam Smith’s “invisible hand” because they allow people to work in their own self-interest.  The simple beauty of capitalism is that billions of people, all working in their own self-interest, will naturally create a complex and dynamic world economy, with no need for an external designer. But because of the Medea hypothesis, capitalism does have its limitations.  Capitalism selects for behaviors that create positive feedback loops, resulting in financial booms and busts.  Just as it is currently in everybody’s self-interest to pollute the Earth’s atmosphere with unchecked emissions of carbon dioxide, in recent years it was in the self-interest of all to pollute the world-wide financial system with toxic subprime mortgages. Everybody benefited, so long as American home values kept rising - low income home owners, real estate brokers, real estate speculators, local banks, mortgage brokers, Fannie Mae, Freddie Mac, investment banks, bond rating agencies, insurance companies like AIG, and private investors all benefited from the leverage and complex derivatives hiding the impending catastrophe of subprime mortgages, until the bubble burst. Having everybody working in their own self-interest does amazing things, but because of the Medea hypothesis it also can lead to the ruin of all if left unchecked.&lt;br /&gt;&lt;br /&gt;Actually, we figured this all out in the 20th century.  Since socialism and communism do not work, and feudalism has a very low economic output, with many undesirable social peculiarities to boot, we are left with capitalism and whatever shortcomings it might have.  Because the Darwinian characteristics of &lt;em&gt;laissez-faire&lt;/em&gt; capitalism lead to excesses brought on by unchecked positive feedback loops, it is necessary for government to step in by imposing regulations upon the economy that squelch the bubbles that lead to booms and subsequent busts.  Essentially, the government needs to superimpose small negative feedback loops on top of the very large, inherently positive, feedback loops of capitalism, like adding a little diatomaceous earth to nitroglycerin.  So legislation like the Dodd–Frank Wall Street Reform and Consumer Protection Act of 2010 are necessary to bring stability to the world financial systems.&lt;br /&gt;&lt;br /&gt;In today’s hostile political climate, one frequently hears politicians wax-poetic about returning to the apparent splendor of 19th century &lt;em&gt;laissez-faire&lt;/em&gt; capitalism, with its absence of income taxes, regulations, and a central banking system in the form of the current Federal Reserve system.  However, this nostalgia for 19th century &lt;em&gt;laissez-faire&lt;/em&gt; capitalism ignores the Dickensian poverty and social injustice of the 19th century, with its rampant child labor, tainted foods, pollution, unsafe working conditions and frequent financial collapses.  To get a flavor of unregulated &lt;em&gt;laissez-faire&lt;/em&gt; capitalism at work, try this little experiment.  Type in the string “panic of” into Google and let Google complete your query.  You will find:&lt;br /&gt;&lt;br /&gt;panic of 1819&lt;br /&gt;panic of 1837&lt;br /&gt;panic of 1857&lt;br /&gt;panic of 1873&lt;br /&gt;panic of 1893&lt;br /&gt;panic of 1907&lt;br /&gt;panic of 2008&lt;br /&gt;&lt;br /&gt;Now read through the above list of hits on the Wikipedia and see how well unregulated &lt;em&gt;laissez-faire&lt;/em&gt; capitalism works.  For some reason, there is no “panic of 1929”, but you should read about that financial collapse as well.&lt;br /&gt;&lt;br /&gt;Over the past 100 years we have modified the rules under which capitalism operates, in a manner to allow capitalism to work its miracles in a manner useful to mankind, by adopting child labor laws, pollution controls, financial regulations, regulations to ensure safe working conditions, and a graduated income tax to level out income disparities.  We certainly do not want to return to the excesses of the 19th century, we already did that once before, and it was not very pleasant.  And just as Peter Ward suggested that some geoengineering is in order to preserve the habitability of the Earth, we should allow governments to intervene in the natural boom and bust cycles of capitalism, by using the theories of Keynesian economics to stimulate spending and production, and the Monetarism of Milton Friedman to manipulate the money supply to smooth out the business cycles, because capitalism, like life on Earth, is a mindless form of self-replicating information that does not necessarily act in its own long-term self-interest.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-5832071615064605602?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/5832071615064605602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=5832071615064605602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/5832071615064605602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/5832071615064605602'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/10/new-introduction-to-softwarephysics.html' title='Is Self-Replicating Information Inherently Self-Destructive?'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-kHhoCjr2P9c/TswYfk0mJwI/AAAAAAAAASY/9fbLn8JNQaU/s72-c/Feedback.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-4136418477652450368</id><published>2011-09-01T06:16:00.000-07:00</published><updated>2011-10-31T05:39:34.352-07:00</updated><title type='text'>Using the Evolution of Software as a Model for Astrobiologists</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished reading &lt;em&gt;First Contact – Scientific Breakthroughs in the Hunt for Life Beyond Earth&lt;/em&gt; (2011) by Marc Kaufman, which takes a slightly different approach to exploring the fascinating world of astrobiology than do most other popular books on the subject, because it is written in a narrative form, and describes the author’s world-wide adventures in seeking out the fascinating stories behind the work of many of today’s researchers actively working on the forefronts of the relatively new science of astrobiology.  The other unique thing about &lt;em&gt;First Contact&lt;/em&gt; is that the author showcases the work of some investigators on the cutting edge, who think we may have already detected extraterrestrial life, especially on Mars or perhaps even in distant star systems.  Kaufman also maintains that it is important for researchers in astrobiology to go beyond the narrow confines of the definition of life that was unofficially defined in a 1994 NASA workshop as “a self-sustaining chemical system with the capacity to evolve in a Darwinian manner”, and that will be the subject of this posting from a softwarephysical perspective.  Like the researchers currently working on the origin of life on Earth, the astrobiologists are confronted with a similar problem, namely, that they only have one example of life on Earth with which to work, and this limitation has had a tendency to focus attention within the field upon searching for Earth-like carbon-based life forms only.  Softwarephysics would suggest that, since both carbon-based life forms and software are both forms of self-replicating information, the astrobiologists should expand their horizons a bit and concentrate more on searching for self-replicating information within the Universe, rather than solely focusing upon carbon-based life forms.  Certainly the origin and evolution of software on Earth over the past 70 years, 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 (see &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics_25.html"&gt;Programming Clay&lt;/a&gt;, &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2009/04/new-introduction-to-softwarephysics.html"&gt;A Proposal For All Practicing Paleontologists&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In my last posting, &lt;a href="http://softwarephysics.blogspot.com/2011/08/new-introduction-to-softwarephysics.html"&gt;SETS - The Search For Extraterrestrial Software&lt;/a&gt; I proposed that the chance of us falling prey to the malicious designs of alien software were rather slim because I did not think that there was much alien software, nor alien intelligence, out there to begin with.  However, like most astrobiologists, I also have a high level of confidence that carbon-based life forms are quite common in our Universe.  The fact that our Universe is just chock full of organic molecules that, thanks to the lobular quantized angular momentum of the electrons in carbon atoms, come in a nearly infinite number of huge molecules, with very complex geometries that can encode information, and consequently, form a framework upon which the self-replicating information necessary for life exists, would lead one to conclude that simple carbon-based life forms should be quite ubiquitous throughout our Universe  (see &lt;a href="http://softwarephysics.blogspot.com/2008/01/softwarechemistry.html"&gt;SoftwareChemistry&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; for details).  This is further bolstered by the very early appearance of life upon Earth a few hundred million years after the planet formed 4.5 billion years ago.  Life on Earth most likely originated 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.  It is thought that at the time of the late heavy bombardment, that Jupiter and Saturn had entered into a 2:1 orbital resonance, with Saturn making one orbit for every two orbits of Jupiter, and that the two planets had flung a nearby Neptune out to its current orbital position as the most distant planet from the Sun.  Neptune then dislodged many of the surrounding comets from its new-found home, causing them to plunge in towards the inner planets like the Earth, producing many deadly collisions that boiled away the Earth’s oceans time and time again.  Seeking refuge several thousand feet below the mayhem of the Earth’s surface allowed life to safely originate 4.0 – 4.2 billion years ago during the late heavy bombardment and persist in an undisturbed manner to this very day.  In fact, there are still plenty of microbes down there.  You can actually hire firms to analyze the bacteria in your oil field reservoirs to help prevent them from becoming soured by bacteria that produce hydrogen sulphide gas. In &lt;em&gt;First Contact&lt;/em&gt; Kaufman also describes the work of Tullis Onstott and Gaetan  Borgonie, who have found multicellular worm-like nematodes feeding upon bacteria at a depth of 12,000 feet in South African platinum mines.  Onstott and Borgonie have shown that these little worms have followed their bacterial prey down from the surface and were not brought down by mining operations.  In fact, William Whitman of the University of Georgia has estimated that half or more of the Earth’s entire biomass exists below 30 feet of the Earth’s surface, so we surface dwellers may be a bit of an anomaly.  It is comforting to realize that even the blast from a nearby gamma ray burster could not completely sterilize the entire Earth.&lt;br /&gt;&lt;br /&gt;So in the next few decades, as our observing telescopes and hardware get better and better, and eventually allow us to obtain spectra from distant planets orbiting neighboring star systems, we will most likely observe the signatures of primitive life forms in their atmospheres, like the simultaneous presence of both oxygen and methane, demonstrating an atmosphere far from thermodynamic equilibrium, and therefore, a home for living things.  This will necessarily lead us to conclude that, at a minimum, simple single-celled carbon-based life forms must be quite common in our Universe.  But once the thrill of making that determination has worn off, we will most likely still be left with a stony silence from our SETI radio telescopes, which by that time should have detected signals from alien intelligences, given the rapid pace with which SETI technology is currently progressing.  Once we learn that simple prokaryotic carbon-based life forms are as common as rocks in our Universe, we will still be left with the nagging desire to find extraterrestrial intelligences.  After all, that is really what our endeavors in astrobiology and SETI are really all about.  In truth, we are lonely and want to find some companionship out there in the depths of space to help make it all seem worthwhile.  Indeed, if we were to find ourselves to be totally alone in this Universe, it would certainly add to the apparent meaninglessness of it all in a very a nihilistic manner.  But as I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2011/08/new-introduction-to-softwarephysics.html"&gt;SETS - The Search For Extraterrestrial Software&lt;/a&gt;, it may be very difficult for us to detect alien intelligences, especially if my scheme about self-replicating intelligent software broadcasting itself across an entire galaxy at the speed of light does not work in practice.  After all, even Stephen Hawking has warned us about actively seeking out alien intelligences by broadcasting strong radio transmissions into interstellar space.  Perhaps everybody out there is similarly wary, and all are just sitting back passively listening.&lt;br /&gt;&lt;br /&gt;The first step in trying to find extraterrestrial intelligences hiding in deep space is to figure out what you are looking for.  This is where the origin and evolution of software on Earth can be of help.  In &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;, &lt;a href="http://softwarephysics.blogspot.com/2009/04/new-introduction-to-softwarephysics.html"&gt;A Proposal For All Practicing Paleontologists&lt;/a&gt;, and &lt;a href="http://softwarephysics.blogspot.com/2010/11/new-introduction-to-softwarephysics.html"&gt;The Adaptationist View of Software Evolution&lt;/a&gt;, we saw that through a process of convergence, both carbon-based living things and software on Earth have followed the same evolutionary path through Daniel Dennett’s Design Space.  Both began as simple unstructured entities that dominated for a very long period of time. Simple prokaryotic bacteria dominated the Earth for many billions of years before the arrival of structured eukaryotic single-celled organisms about 1500 million years ago that divided the functions of life up amongst a number of organelles, like the mitochondria and chloroplasts.  These eukaryotic cells then came together to form simple worm-like multicellular organisms about 900 million years ago, and a few hundred million years later, the Cambrian Explosion, 530 million years ago, brought us the large multicellular organisms of today.  Similarly, simple unstructured software dominated IT from 1941 – 1972, with an architecture very similar to the simple single-celled prokaryotic bacterial life forms of the early Earth.  Unstructured software lost dominance with the arrival of structured software in 1972, which had an architecture very similar to the simple single-celled eukaryotic life forms, and divided processing up amongst a number of internal functions(), like the organelles of the eukaryotes.  In 1992, object-oriented software came into dominance with the adoption of the object-oriented language C++ by the IT departments of many major corporations, and later, the arrival of Java in 1995, which clinched the object-oriented revolution in IT.  Object-oriented software mimics the architecture of multicellular organisms because it consists of a large number of structured objects that send messages to each other, which subsequently induce exposed methods() to perform tasks within the objects, just as multicellular organisms consist of a large number of structured eukaryotic cells that send chemical messages called ligands to each other that bind to exposed membrane receptors on the surfaces of the cells, inducing them to execute public biochemical pathways within the cells.  In 2004 SOA (Service Oriented Architecture) appeared on the IT scene, in which objects could make remote service calls upon service objects via, CORBA, RMI, or SOAP calls, like the cells within a complex multicellular body making service calls upon the organs within the body.  Like the Cambrian Explosion, which brought forth several dozen phyla, or body plans, for the macroscopic multicellular life forms of the day, SOA has organized modern software into a number of Design Patterns like the Model-View-Controller (MVC) design pattern used by most web-applications today.&lt;br /&gt;&lt;br /&gt;But this is not the end of the story for software.  In &lt;a href="http://softwarephysics.blogspot.com/2011/08/new-introduction-to-softwarephysics.html"&gt;SETS - The Search For Extraterrestrial Software&lt;/a&gt;, we saw that the three forms of self-replicating information currently on the planet - the genes, memes, and software - are currently in the process of morphing into a new hybrid form of intelligence, and this merging of self-replicating information into a new form of intelligence will probably be completed within the next 100 years or so.  If that should happen, it might mean that carbon-based intelligences within our Universe might be quite fleeting things indeed. After all, the intelligent species &lt;em&gt;Homo sapiens&lt;/em&gt; has only been around for 200,000 years, a mere blink of geological time. Carbon-based life forms begin as simple DNA survival machines that shield DNA from harm and support its replication processes, but as these DNA survival machines evolve more complicated neural networks, the neural networks begin to be parasitized by memes.  Indeed &lt;em&gt;Homo sapiens&lt;/em&gt; is not the only species on Earth currently loaded down with memes.  Chimpanzees, bonobos, macaque monkeys, whales, dolphins, porpoises, and even song birds are known to pass along cultural artifacts to the minds of others within their species, and these cultural artifacts, or memes, are observed to evolve over time, like the evolving songs of whales and song birds.  So by the time a carbon-based species attains enough technological memes to begin to search for interstellar radio transmissions, or begins to broadcast on an interstellar basis itself, it will probably already be an amalgam of genes and memes, with software well on the way to becoming the dominant form of self-replicating information on their planet.  Thus, most forms of intelligence within our galaxy will likely already be a hybrid of genes, memes, and software, or something even beyond.  They will most likely not be simple carbon-based DNA survival machines like us, so we should stop exclusively looking for creatures of that sort.&lt;br /&gt;&lt;br /&gt;So how do you find such creatures, especially if they are wary of revealing their positions by openly broadcasting radio transmissions into interstellar space?   In &lt;em&gt;First Contact&lt;/em&gt; Marc Kaufman describes the work of Richard Carrigan, a particle physicist at Fermilab, who has been using the existing data from infrared satellites to search for “Dyson spheres”.  In 1960, Freeman Dyson published a paper entitled the &lt;em&gt;Search for Artificial Stellar Sources of Infra-Red Radiation&lt;/em&gt; in the journal &lt;em&gt;Science&lt;/em&gt;.  In this paper, Dyson proposed that advanced civilizations would eventually attain a level of technology sufficient to completely surround their home star with a “Dyson sphere” composed of a loose collection of orbiting solar collectors that completely surrounded their star and converted its entire stellar output into energy useful to the civilization.  The idea is that no matter how advanced a civilization may become, it will always be subject to the first and second laws of thermodynamics.  Remember, because of the second law of thermodynamics, all forms of self-replicating information require a source of high-grade energy that can be converted into low-grade heat energy in order to replicate (see &lt;a href="http://softwarephysics.blogspot.com/2007/10/entropy-bane-of-programmers.html"&gt;Entropy - the Bane of Programmers&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt;).  For example, suppose we were to construct a Dyson sphere with a radius equal to the Earth’s orbit that completely absorbed the Sun’s entire energy output and converted this energy into electricity.  Because the first law of thermodynamics requires that none of the Sun’s energy output be destroyed by the surrounding Dyson sphere, the Dyson sphere would necessarily have to emit an amount of energy equal to the amount of energy that it absorbed.  However, it would do so by emitting photons with a much lower energy and spread over the much larger Dyson sphere.  The radius of the Sun is 470,000 miles, while the radius of the Dyson sphere would be 93,000,000 miles.  The Sun emits photons with a black body temperature spectrum of 5780 &lt;sup&gt;0&lt;/sup&gt;K (9945 &lt;sup&gt;0&lt;/sup&gt;F) that peaks in the visible range, while the much larger Dyson sphere would emit a much larger number of photons, but with a much lower black body temperature spectrum of only 300 &lt;sup&gt;0&lt;/sup&gt;K (81 &lt;sup&gt;0&lt;/sup&gt;F) in the infrared range.  So to find Dyson spheres you have to look for strong infrared sources with black body emission curves in the range of 100 to 600 &lt;sup&gt;0&lt;/sup&gt;K and associated wavelengths in the infrared range of 10 to 100 μm, and this is what Richard Carrigan has been doing by searching through the existing data from infrared satellites that were launched for other purposes.  For more details on this fascinating SETI search, please see:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://home.fnal.gov/~carrigan/infrared_astronomy/Fermilab_search.htm"&gt;http://home.fnal.gov/~carrigan/infrared_astronomy/Fermilab_search.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://home.fnal.gov/~carrigan/infrared_astronomy/General%20Dyson%20Sphere%20Lecture%20%202008%206%202.pdf"&gt;http://home.fnal.gov/~carrigan/infrared_astronomy/General%20Dyson%20Sphere%20Lecture%20%202008%206%202.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-4136418477652450368?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/4136418477652450368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=4136418477652450368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/4136418477652450368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/4136418477652450368'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/09/new-introduction-to-softwarephysics.html' title='Using the Evolution of Software as a Model for Astrobiologists'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-2160422600420441607</id><published>2011-08-16T06:05:00.001-07:00</published><updated>2011-12-22T05:38:43.634-08:00</updated><title type='text'>SETS – The Search For Extraterrestrial Software</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;In several of my preceding postings I have commented in a rather lighthearted and cavalier manner that our current SETI program - The Search For Extraterrestrial Intelligence - might more aptly be called a SETS program – The Search For Extraterrestrial Software, and I commented that making contact with alien software would probably be a good thing because, just as the domestication of our minds by meme-complexes over the past 200,000 years brought us the best things in life like art, music, literature, science, and civilization, my hope would be that the domestication of our minds by software would also help to elevate mankind as well, even if it happened to be alien software.  I just finished reading &lt;em&gt;Parasite Rex – Inside the Bizarre World of Nature’s Most Dangerous Creatures&lt;/em&gt; (2000) by Carl Zimmer, and now I am not so sure about alien software being so inherently benevolent in nature.  After all, we must always remember that software is just a mindless form of self-replicating information, and that will certainly be true of alien software as well.&lt;br /&gt;&lt;br /&gt;As I explained in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, there currently are three forms of self-replicating information on the planet – genes, memes and software, with software rapidly becoming the dominant form of self-replicating information on Earth.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Self-Replicating Information&lt;/strong&gt; – 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.&lt;br /&gt;&lt;br /&gt;All forms of self-replicating information have the following parasitic characteristics:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Characteristics of Self-Replicating Information&lt;/strong&gt;&lt;br /&gt;1. All self-replicating information evolves over time through the Darwinian processes of 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.&lt;br /&gt;&lt;br /&gt;2. All self-replicating information begins spontaneously as a parasitic mutation that obtains energy, information and sometimes matter from a host.&lt;br /&gt;&lt;br /&gt;3. With time, the parasitic self-replicating information takes on a symbiotic relationship with its host.&lt;br /&gt;&lt;br /&gt;4. Eventually, the self-replicating information becomes one with its host through the symbiotic integration of the host and the self-replicating information.&lt;br /&gt;&lt;br /&gt;5. Ultimately, the self-replicating information replaces its host as the dominant form of self-replicating information.&lt;br /&gt;&lt;br /&gt;6. Most hosts are also forms of self-replicating information.&lt;br /&gt;&lt;br /&gt;7. All self-replicating information has to be a little bit nasty in order to survive.&lt;br /&gt;&lt;br /&gt;These characteristics will certainly apply to alien software as well.&lt;br /&gt;&lt;br /&gt;About 200,000 years ago, when &lt;em&gt;Homo sapiens&lt;/em&gt; first appeared, the memes forged a complex parasitic/symbiotic relationship with our genes as I outlined in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;.  The arrival of a species on the scene with a very complex neural network allowed the memes to domesticate the minds of &lt;em&gt;Homo sapiens&lt;/em&gt; in order to churn out ever increasing levels of memes, of ever increasing complexity, and in return, the genes benefited from the technological breakthroughs brought on by the memes of the emerging technological meme-complex that today keeps us all alive. In a similar manner, software entered into a complex parasitic/symbiotic relationship with both the genes and the memes. Ever since Konrad Zuse cranked up his Z3 computer in May of 1941, software has domesticated our minds into churning out ever increasing levels of software, of ever increasing complexity, in order to promote the survival of software, and in return, software has provided the genes of &lt;em&gt;Homo sapiens&lt;/em&gt; with the means to support a population of 7 billion DNA survival machines that are all infected with the meme-complexes of the world’s cultures.  Again, as I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html"&gt;What’s It All About?&lt;/a&gt; and  &lt;a href="http://softwarephysics.blogspot.com/2011/06/new-introduction-to-softwarephysics.html"&gt;Genes, Memes and Software&lt;/a&gt;, it’s really all about self-replicating information in the form of genes, memes and software all trying to survive in a nonlinear universe that is subject to the second law of thermodynamics, and our Universe and the multiverse in which it exists might be a form of parasitic self-replicating mathematics.&lt;br /&gt;&lt;br /&gt;Currently, our earthly software is in a strong parasitic/symbiotic relationship with our genes and memes because, currently, software still needs us to self-replicate.  So in the current state of affairs, we need software and software still needs us, and so tranquility reigns supreme in the ongoing relationship between our genes, memes and software.  However, many investigators are currently working on software that will one day be able to write itself, while others are bringing software closer and closer to conscious intelligence, so if left undisturbed, I believe that over the next 100 years or so, our genes, memes and software will slowly merge into a new form of intelligent being as Seth Shostak pointed out in &lt;em&gt;Confessions of an Alien Hunter &lt;/em&gt; (2009).  In &lt;em&gt;Confessions of an Alien Hunter &lt;/em&gt; Seth Shostak proposed that if we ever finally do make contact with an alien civilization, we will not be talking to carbon-based life forms, but to machines instead.  Shostak is of the opinion that any carbon-based civilization capable of interstellar radio communications will necessarily be of such a technological level that their machines will have already merged with their carbon-based predecessors, so that by the time we finally do make contact, the metamorphosis will have already been completed.  And the same thing seems to be happening to &lt;em&gt;Homo sapiens&lt;/em&gt; before our very eyes.  I agree with Shostak for the most part, but I suspect that we will not be talking to machines – we will be talking to software.  And it will probably be our software talking to their software.  This will be a good thing because software is much better suited for the rigors of interstellar telecommunications than we are, with its pregnant pauses of several hundred years between exchanges due to the limitations set by the finite speed of light.  We have already trained software to stand by for a seemingly endless eternity of many billions of CPU cycles, patiently waiting for you to finally push that &lt;strong&gt;Place Order&lt;/strong&gt; button on a webpage, so waiting for an additional one or two hundred years for a reply should not bother software in the least.&lt;br /&gt;&lt;br /&gt;After all, we really should stop kidding ourselves, carbon-based DNA survival machines, like ourselves, were never meant for interstellar spaceflight, and I doubt that it will ever come to pass for us, given the biological limitations of the human body, but software can already travel at the speed of light and thus is superbly preadapted for interstellar journeys.  And the same goes for aliens.  I doubt that we will ever see carbon-based aliens appearing upon our doorstep, but the arrival of alien software is another thing all together.  Alien software could certainly not run on the computers of today nor on the computers of tomorrow either, because the architecture used by alien software would certainly be unique.  So like in Carl Sagan’s &lt;em&gt;Contact&lt;/em&gt; (1985), intelligent alien software would first have to transmit the technology to build alien hardware first, and then the alien software to run upon it.  Any alien software capable of interstellar radio transmissions must necessarily have access to metals, since it is necessary to jiggle the free electrons in metals back and forth to create radio waves.  Similarly, in order to receive radio transmissions you need to have access to metals too, in order to build metallic antennas that have free electrons that can jiggle back and forth in sync with the incoming radio waves.  So alien software could be pretty confident that any potential hosts would have access to metals and electronics and probably reside upon a rocky planet with a silicate crust rich in metals like the Earth.  Of course, this would rule out intelligent beings like dolphins who live in a watery world without metals and technology, but alien software would not be interested in such creatures in the first place, since they would not be of much help with the self-replication of alien software.  Once you are confident that your potential hosts have access to a silicate-based planetary crust and a sufficient supply of metallic and semiconductor atoms, all you have to do is to send all the necessary information to build and operate alien computers in parallel using a large number of channels.  On each channel you send a portion of the necessary information in a continuous loop that repeats over and over.  Essentially you bust up all of the necessary information into a huge number of TCP/IP packets and transmit them all nearly simultaneously over a large number of channels with different radio frequencies.  In this way, a potential host can pick up all of the necessary information to build and load alien computers with software in a very short period of time by putting all the TCP/IP packets back together on the receiving side in their proper sequential order.&lt;br /&gt;&lt;br /&gt;The beauty of this approach is that it is the perfect way for software to self-replicate over interstellar distances throughout our galaxy at nearly the speed of light, essentially using an intragalactic Internet.  There is no need to suffer the time delays of a two-way conversation, since this is a one-way delivery of self-replicating information.  All alien software has to do is broadcast the technology necessary for its own self-replication, and let the natural curiosity of other forms of distant intelligences within the galaxy do the work for it.  After all, if we were to receive an enticing alien marketing campaign today to build alien supercomputers running alien supersoftware could we resist?  Perhaps, but could we be certain that all of mankind could also resist?  It seems nearly impossible these days for any of us to agree upon anything, and there surely would be the potential for military and economic gain to be made from alien technology too, so the offer of such advanced technology would seem to be nearly irresistible.  The final step in this process of course is for the hosts infected with alien software to repeat the process all over again by sending out the instructions to build alien computers running alien software, like an intragalactic computer virus.  We have certainly already seen this happen within the cyberspacetime of the Software Universe, so it is not such a farfetched idea.  People are constantly getting infected by computer viruses, worms, and other forms of malware by clicking on enticing links that they should avoid, or opening attachments to dubious emails, only to find their PC being shanghaied into a botnet of zombie PCs that do the bidding of alien software, or as a host that transmits alien software on to others.  Most people are totally unaware that their PC is already loaded down with huge amounts of parasitic software.&lt;br /&gt;&lt;br /&gt;But since the genes have been playing this parasitic game for billions of years, we really need to look to the genes to evaluate the potential threat from alien software.  In &lt;em&gt;Parasite Rex – Inside the Bizarre World of Nature’s Most Dangerous Creatures&lt;/em&gt; Carl Zimmer does exactly that by describing the fascinating world of parasites.  The parasites we already have on Earth provide the best model for the potential dangers we might face from alien software because, as Zimmer points out, the parasitic lifestyle is another example of biological convergence in action.  Biologists have long noted that different evolutionary lines of organisms evolve similar solutions to the same problems.  An example of convergent evolution is the striking similarity of the wings of insects, birds, bats, and flying dinosaurs. All are used for the same purpose and have similar structures, but each evolved independently from different ancestral lines.  Similarly, the concept of the “eye” has independently evolved more than 40 times over the past 600 million years on Earth.  As Daniel Dennett has pointed out, there are only a certain number of Good Tricks, such as using photons to see with, flying through the air to find prey, swimming through water to avoid becoming prey, and running on four legs neatly tucked underneath a body frame that make practical sense, and these Good Tricks kept getting rediscovered over and over again in the evolution of the biosphere.  Parasitism is just another Good Trick, and natural selection has driven many parasites to adopt very similar lifecycle strategies within their hosts.  By studying these parasitic lifestyles we can get a good appreciation of how alien software might take advantage of intelligent beings throughout the galaxy.&lt;br /&gt;&lt;br /&gt;Carl Zimmer explains that parasites have been misunderstood from the very beginning, which is a serious mistake because fully ¾ of all living things on Earth are parasites!  For example, &lt;em&gt;Homo sapiens&lt;/em&gt; and all other forms of animal life are parasitic creatures from the point of view of plants, since we cannot turn sunshine, water, and carbon dioxide into carbohydrates like they can.  In fact, there are not many fundamental monomers that we can make all on our own.  We have to rely on domesticated plants, animals, and about 3.5 pounds of bacteria within our guts to do that for us, so we really are parasitic DNA survival machines after all.  Carl Zimmer maintains that it makes sense to spend some time studying our fellow parasites, since they have affected the course of evolution on Earth as greatly as any of the interactions of predators and prey in the biosphere.&lt;br /&gt;&lt;br /&gt;Zimmer explains that before the 19th century, the medical establishment thought that diseases were caused by foul smelling air, miasma, and foul humors within the human body.  When a person became ill because of foul humors within their body, it was no surprise to find at autopsy that the body was also full of tapeworms, flukes, roundworms, hookworms, and other small creatures wiggling about.  It was thought that these parasites naturally appeared through spontaneous generation within a sick body.  After all, decaying meat was always found to eventually be covered with a layer of squirming maggots, so it made perfect sense that an ailing body would do the same.  Thus, prior to the 19th century, it was thought that getting sick gave you parasites, rather than parasites making you sick.  Only later was it recognized that parasites could cause disease as well.  In the late 19th and early 20th centuries, it was thought that parasites were primitive forms of life that had degenerated into parasitism by losing the ability to live freely on their own, and thus parasites were generally looked down upon with distaste as degenerate forms of life not worthy of serious study beyond trying to eliminate them if possible.  Only in the last few decades has it been recognized that parasites are actually very advanced forms of life with very complex lifecycles that are generally more sophisticated than most of the “higher” forms of life.  For example, many parasites occupy several different hosts during their lifecycle and take on completely different physical forms within each host in order to avoid the immune systems of multiple hosts and to accomplish the necessary tasks the parasite must perform within each different host in the chain.  Zimmer also points out that many parasites are not simply along for the ride, but instead, actively alter the behavior of their hosts to enhance the survival of the parasites.  The parasites essentially domesticate their hosts.  Here is just one example from &lt;em&gt;Parasite Rex – Inside the Bizarre World of Nature’s Most Dangerous Creatures&lt;/em&gt;, which follows an earlier tale about how a certain fungus makes house flies die at the top of blades of grass, so that they can drop spores onto other house flies.&lt;br /&gt;&lt;br /&gt;&lt;font color="blue"&gt;“Another species of fluke can be found in the meadows of Europe and Asia, along with a few in North America and Australia.  Known as &lt;em&gt;Dicrocoelium dendriticum&lt;/em&gt;, or the lancet fluke, it makes cows and other grazers its host as an adult, and the cows spread their eggs in their manure.  Hungry snails swallow the eggs, which hatch in their intestines.  They drill through the wall of a snail’s gut and settle in the digestive gland.  There the flukes produce a generation of cercariae, which make their way to the snail’s surface.  The snail tries to defend itself from the parasites by blocking them off with walls of slime.  The slime balls up around the cercariae, which the snail coughs up and leaves behind in the grass.&lt;br /&gt;&lt;br /&gt;Next, along comes an ant.  To an ant, a slime ball is positively delicious.  Along with the slime, the ant may also swallow hundreds of lancet flukes as well.  The parasites slide down into its gut, and they then wander for a while through its body, eventually moving to the cluster of nerves that control the ant’s mandibles.  The parasites all travel together on this trip, but after visiting the nerves, they split up.  Most of the lancet flukes head back to the abdomen, where they form cysts, but one or two stay behind in the ant’s head.&lt;br /&gt;&lt;br /&gt;There they do some parasitic voodoo on their hosts.  As evening approaches and the air cools, the ants find themselves drawn away from their fellow ants on the ground and upward to the top of a blade of grass.  Like flies infected with a fungus, the ants clamp down on the tip of the grass.  But the lancet fluke has a different goal than the fungus does.  The fungus uses its host as a catapult to shower its spores on other insects.  The lancet fluke can continue to live only if it can get inside its final host, a mammal.  Clamped to the tip of a grass blade, the infected ant is likely to be devoured by a cow or some other grazer passing by.  When the ant tumbles into the cow’s stomach, the flukes burst out and make their way to the cow’s liver, where the flukes will live as adults.&lt;br /&gt;&lt;br /&gt;But the lancet fluke, like the fungus, is very aware of the passing of time.  If the ant sits the whole night without being eaten and the sun rises, the fluke lets the ant loosen its grip on the grass.  The ant scurries back down to the ground and spends the day acting like a regular insect again.  If the host were to bake in the heat of the direct sun, the parasite would die with it.  When evening comes again, it sends the ant back up a blade of grass for another try.”&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;But certainly intelligent beings could not be manipulated by alien software to act contrary to their own best interests.  Unfortunately, we have plenty of precedents to the contrary.  The minds of human beings have been parasitized by memes for nearly 200,000 years, and even a very superficial study of human history will reveal how easily memes have tricked human beings into committing suicide at their behest.  Just add up all the willing fatalities in all the wars of the past 200,000 years.  Presently, there are several meme-complexes on the planet which use the martyrdom meme as a recruiting mechanism.  Yes, the mind of the martyr is lost when his explosive jacket detonates in a market square, killing many innocents in the process, but his martyrdom strengthens the resolve of other minds infected with the meme-complex that hosts the martyrdom meme, and the temporary boost to the social status of the martyr enhances the recruitment of other minds.  As Zimmer pointed out, the parasitic lifestyle is an example of convergence in action, so a meme that can get a human being to commit suicide to advance the meme is just emulating the actions of a lancet fluke within an ant.&lt;br /&gt;&lt;br /&gt;Now certainly intelligent software would not embark upon such heinous acts.  But don’t forget that, just like the minds of human beings, intelligent software will also be loaded down with parasitic memes as well.  In order to self-replicate, meme-complexes always carry along a set of anesthetizing memes to soothe the conscience of intelligent beings.  Over the course of human history, human beings have committed an untold number of horrendous acts, but thanks to these soothing memes, we have always done so with only the best of intentions.  Every imperial power over the past 10,000 years has always looked upon its colonial policies as a benevolent effort to bring civilization and enlightenment to its backward subjects, and I am quite sure that intelligent software could easily convince itself of the same.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Where Are They?&lt;/Strong&gt;&lt;br /&gt;Now if our galaxy is indeed heavily populated by intelligent beings, and the above scheme could really work, our radio telescopes should be choked with intragalactic SPAM for building alien computers and loading them up with alien software!  Our radio telescopes should look like your typical inbox that is loaded down with SPAM from the orphans of powerful men in Nigeria who want you to help them bring in $10 million of ill-gotten gains into your country, and countless emails for Viagra, and the love letters from beautiful women in Russia, but they are not.  All we hear is a stony silence.  This is an example of Fermi’s Paradox, first proposed by Enrico Fermi over lunch one day in 1950:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fermi’s Paradox&lt;/strong&gt; - If the universe is just chock full of intelligent beings, why do we not see any evidence of their existence? &lt;br /&gt;&lt;br /&gt;My suspicion is that the reason we are not overwhelmed with messages from alien intelligences is that, although our Universe is capable of sustaining intelligent beings, it just barely qualifies under the Weak Anthropic Principle:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Weak Anthropic Principle&lt;/strong&gt; - Intelligent beings will only find themselves existing in universes capable of sustaining intelligent beings.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics.html"&gt;Is the Universe Fine-Tuned for Self-Replicating Information?&lt;/a&gt;, I argued that nearly any universe was capable of sustaining intelligent beings, no matter what physics it might happen to be running on at the moment, because all universes must come with a built-in second law of thermodynamics.  Since the second law is just an artifact of statistics, and not a “real” physical law at all, all possible universes must necessarily have a second law of thermodynamics and also the Darwinian mechanisms of innovation and natural selection that naturally fall out from the second law in action.  But on the other hand, just because a universe may be capable of sustaining intelligent beings, it does not mean that the universe will have a high density of intelligent beings spread throughout.  For example, in &lt;a href="http://softwarephysics.blogspot.com/2009/02/introduction-to-softwarephysics-ii.html"&gt;CyberCosmology&lt;/a&gt;, I explained that thanks to the Rare Earth Hypothesis of Peter Ward and Donald Brownlee presented in &lt;em&gt; Rare Earth&lt;/em&gt; (2000), our Universe just barely qualifies as a home for intelligent beings.  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 1235 possible candidates and 17 confirmed planets to date, but none of these 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 &lt;sup&gt;0&lt;/sup&gt;K for the CBR – Cosmic Background Radiation - up to  several billion &lt;sup&gt;0&lt;/sup&gt;K 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 &lt;sup&gt;0&lt;/sup&gt;K near the freezing and boiling points of water on Earth, and there are very few places in our Universe where that is the case.  So intelligent beings are probably quite rare in our Universe.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Technological Horizon&lt;/strong&gt;&lt;br /&gt;in &lt;a href="http://softwarephysics.blogspot.com/2009/02/introduction-to-softwarephysics-ii.html"&gt;CyberCosmology&lt;/a&gt; I also proposed that, in addition to the idea that intelligent beings are quite rare in our Universe, there was also the limitations imposed by the technological horizon of each universe.  All universes capable of sustaining intelligent beings must have a set of physical laws that are time independent, or that change very slowly with time, and they must have a time-like dimension for the Darwinian processes of innovation and natural selection to operate. All such universes, therefore, impose certain constraints on technology. Some examples of these technological constraints in our Universe that we have already explored in previous postings on softwarephysics are the speed of light limiting the velocity with which matter, energy, and information can travel, the Heisenberg Uncertainty Principle limiting what we can measure, the first and second laws of thermodynamics limiting the availability of energy, and Kurt Gödel’s incompleteness theorems which limit what mathematics can do for us. These technological constraints, that all intelligent universes must have, form a technological horizon or barrier surrounding all intelligent beings, beyond which they are cut off from the rest of the universe in which they find themselves existing. This technological horizon might be quite large. For example, let us suppose that in our Universe travel via wormholes in spacetime is not allowed at the most fundamental level, then the cosmological horizon that forms our observable universe would also be the technological horizon of our universe because galaxies beyond our cosmological horizon are expanding away from us faster than the speed of light. On a smaller scale, we can presume that for our own Universe the technological horizon must be no smaller than a galaxy because we have already sent radio and TV transmissions into deep space and have launched the Pioneer 1 &amp; 2 and the Voyager 1 &amp; 2 probes beyond our Solar System into the interstellar space of our galaxy with the puny technology we currently have at hand. However, the technological horizon of our Universe could very well be on the order of the size of our galaxy, making intergalactic telecommunications and travel technically impossible.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Possible Explanation for Fermi’s Paradox&lt;/strong&gt;&lt;br /&gt;So the answer to Fermi’s paradox (1950), why if the universe is just chock full of intelligent beings, we do not see any evidence of their existence, might just be that all intelligent beings will never see the evidence of other intelligent beings because they will always find themselves to be alone within the technological horizon of their universe. The reason that intelligent beings might always find themselves to be alone within their technological horizon is two-fold. First, the Rare Earth Hypothesis guarantees that there will not be much potential intelligent life to begin with within a given technological horizon if the technological horizon of a universe is not too large. Secondly, there is the parasitic nature of all self-replicating information. As we saw, self-replicating information must always be just a little bit nasty in order to survive and overcome the second law of thermodynamics and nonlinearity. So the reason that intelligent beings always find themselves to be alone within the technological horizon of their universe is that if there were other intelligent beings within the same horizon, these alien intelligent beings would have arrived on the scene and interfered with the evolution of any competing prospective intelligent life within the technological horizon. Unfortunately, given the nature of self-replicating information, competing alien intelligences will always intentionally or unintentionally poison the home planets of all other prospective forms of intelligent life within a technological horizon of a universe, and this poisoning can be accomplished at nearly the speed of light by parasitic alien software.  Based upon this speculation, let us revise the weak Anthropic Principle as:&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;The Revised Weak Anthropic Principle&lt;/strong&gt; – Intelligent beings will only find themselves in universes capable of supporting intelligent beings and will always find themselves to be alone within the technological horizon of their universe.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br /&gt;So I don’t think we have much to fear from parasitic alien software because I don’t think there is much out there, but we should take adequate precautions just in case it ever should appear.  More importantly, from a cosmic moral point of view, we should be very careful about what we transmit out to others, so that we do not become galactic parasites ourselves.  In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/07/intro.html"&gt;The Fundamental Problem of Everything&lt;/a&gt;, I explained that since the genes, memes, and software are all forms of mindless self-replicating information bent on replicating at all costs, we cannot sit in judgment of them.  They have produced both the best and the worst things in life, and it is up to us to be aware of their inherently parasitic natures, and to take control by taking responsibility for our thoughts and actions.  We are sentient beings in a Universe that has become self-aware and perhaps the only form of intelligence in our galaxy. What a privilege!&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-2160422600420441607?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/2160422600420441607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=2160422600420441607' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2160422600420441607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2160422600420441607'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/08/new-introduction-to-softwarephysics.html' title='SETS – The Search For Extraterrestrial Software'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-3856765691573594444</id><published>2011-07-24T11:15:00.000-07:00</published><updated>2011-08-23T06:29:43.466-07:00</updated><title type='text'>Is Our Universe a Computer Simulation?</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished reading &lt;em&gt;The Book of Universes&lt;/em&gt; (2011) by John D. Barrow, which is a wonderful overview of the rise and advancement of cosmology in the 20th and 21st centuries.  Professor Barrow is a strong proponent of using Brandon Carter’s Weak Anthropic Principle (1973), as a practical tool that can be used to single out and eliminate obviously fallacious ideas in cosmology.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Weak Anthropic Principle&lt;/strong&gt; - Intelligent beings will only find themselves existing in universes capable of sustaining intelligent beings.&lt;br /&gt;&lt;br /&gt;Like Occam's razor, the idea that the simplest explanation for a phenomenon is the best explanation for a phenomenon, John Barrow skillfully wields the Weak Anthropic Principle in &lt;em&gt;The Book of Universes&lt;/em&gt; like a skilled plastic surgeon with a sharp scalpel cutting away the unwanted imperfections of cosmology.  There have been many advances in cosmology since John Barrow coauthored his first book, and another one of my favorites, &lt;em&gt;The Anthropic Cosmological Principle&lt;/em&gt; (1986) with Frank J. Tipler, and Professor Barrow uses &lt;em&gt;The Book of Universes&lt;/em&gt; to quickly bring us up to speed on the current state of affairs in cosmology in a very concise and clear manner.  But when all is said and done, and all of the current and past models of our Universe have been explored,  Barrow seems to lean heavily towards our Universe being a member of an infinite multiverse with no beginning and no end.  In such a model, the multiverse endures forever and has always existed in a state of self-replication in keeping with Andrei Linde’s Eternal Chaotic Inflation model (1986), which proposes that the multiverse is in an unending state of inflation and self-replication that is constantly generating new universes where inflation ceases.  That is also my current favorite model for our Universe, as I outlined in &lt;a href="http://softwarephysics.blogspot.com/2009/02/introduction-to-softwarephysics-ii.html"&gt;CyberCosmology&lt;/a&gt;,  &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics.html"&gt;Is the Universe Fine-Tuned for Self-Replicating Information?&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2011/06/new-introduction-to-softwarephysics.html"&gt;Genes, Memes and Software&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But in the chapter on &lt;em&gt;Post-Modern Universes&lt;/em&gt;, Professor Barrow has a section on &lt;em&gt;Fake Universes&lt;/em&gt; in which he explores some of the more disturbing ramifications of such a multiverse composed of an infinite number of universes, which consequently must also contain an infinite subset of universes capable of sustaining intelligent beings.  One proposed problem with this is that within this infinite subset of universes capable of sustaining intelligent beings, there will necessarily be found intelligent beings capable of developing complex software that is able to simulate universes containing simulated intelligent beings.  In fact, there will be so many of these simulated universes containing simulated intelligent beings that, if you should find yourself to be an intelligent being, the overwhelming odds are that you are a simulated intelligent being in a simulated universe!  You might even be a simulated scientist doing simulated science in a simulated universe.  That disturbing idea certainly sounds a lot like softwarephysics, and hits a little too close to home for my comfort.  As I explained in the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt;, softwarephysics is a simulated science for the simulated Software Universe that we are all immersed in.  Since I have been actively doing softwarephysics for over 30 years in the computer-simulated Software Universe as an IT professional, I think that I may have some practical experience with doing simulated science in a simulated universe that can be of help in differentiating between working in a “real” and a simulated universe.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;The Book of Universes&lt;/em&gt;, Barrow points out that there are several ways for intelligent observers to determine if they are living in a “real” universe or a simulated universe.  First of all, a simulated universe will have a tendency to gloss over the details and the fine points of reality.  For example, as we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt;, the particles defined by the quantum field theories of our physical Universe use Richard Feynman’s path integral formulation of quantum mechanics, first proposed in 1948, to determine how to behave.  So  these poor little particles have to constantly compute the results of an infinite number of Feynman diagrams just to figure out how to dance about for us.  Since this would lead to the consumption of an infinite amount of computer time to simply simulate a single particle, it is necessary to take some computational shortcuts whenever programming a simulation of a universe.  For example, in classical mechanics the shortcut is to allow particles to only follow a single path and not an infinite number of paths.  In classical mechanics a particle will follow the path that minimizes its action.  Action is defined as the integral over time of the Lagrangian taken along the path of the particle between its initial position and its final position.  Remember, when you integrate something, you just add up all of its little parts, so taking the integral of the Lagrangian over time of a particle’s path is just adding up all of the little contributions to the Lagrangian over its path.  The Lagrangian L is defined as:&lt;br /&gt;&lt;br /&gt;L = T – U&lt;br /&gt;&lt;br /&gt;where:&lt;br /&gt;L = Lagrangian&lt;br /&gt;T = kinetic energy of the particle&lt;br /&gt;U = potential energy of the particle&lt;br /&gt;&lt;br /&gt;Now suppose you drop an electron in a vacuum chamber on the surface of the Earth and want to determine its state of motion after it has fallen a distance D of one meter.  Before you drop the stationary electron it has zero kinetic energy because it is not moving, but it does have lots of potential energy as it rests in the Earth’s gravitational field, so its Lagrangian begins with a minimum value of:&lt;br /&gt;&lt;br /&gt;L = 0 – U = -U&lt;br /&gt;&lt;br /&gt;Since the action is the integral of the Lagrangian over time, and the electron wants to follow the path that minimizes its action over time, it will want to spend lots of time near its starting gate of D = 0 in the vacuum chamber where L = -U.  Once released, the electron will reluctantly begin to slowly fall straight downward with a very small initial velocity so that it spends lots of time in the region where L is nearly  -U.  As the electron slowly falls in the Earth’s gravitational field, it will pick up additional speed and kinetic energy as it slowly turns some of its original potential energy into motion.  As it does so, L continuously gets larger as T gets bigger and U gets smaller.  So in order to minimize its action, the electron will have to move faster and faster through this region of increasing L so that it spends less and less time in regions where L is continuously getting larger and larger.  Thus in classical mechanics, we see the electron start out with an initial velocity of zero and see its velocity slowly increase with an acceleration of g = 9.8 m/sec&lt;sup&gt;2&lt;/sup&gt;, and after one meter the electron will have attained a velocity of 4.427 m/sec.  In classical mechanics we can accurately predict the exact path that the electron follows and its exact velocity “v” and distance traveled “d” at all times, and that is certainly something easily calculated in a computer simulation:&lt;br /&gt;&lt;br /&gt;d = ½  g t&lt;sup&gt;2&lt;/sup&gt;&lt;br /&gt;v&lt;sup&gt;2&lt;/sup&gt; = 2 g d&lt;br /&gt;&lt;br /&gt;where g = 9.8 m/sec&lt;sup&gt;2&lt;/sup&gt;&lt;br /&gt;&lt;br /&gt;And indeed if we were to drop a golf ball in a vacuum chamber at the Earth’s surface, it would indeed follow a single path that minimizes its action to a very remarkable degree.  But unfortunately, electrons are not observed to behave in this way.  Instead, an electron behaves in a strange quantum mechanical manner because of its innate wavelike behavior that explores all possible paths, so we are stuck with computing the results of an infinite number of Feynman diagrams just for this single little electron, and that’s not a very efficient way to run a computer simulation!&lt;br /&gt;&lt;br /&gt;So a simulated universe, like the Software Universe, must necessarily take some simplifying shortcuts at least at the quantum level.  For example, in &lt;a href="http://softwarephysics.blogspot.com/2007/12/quantum-software.html"&gt;Quantum Software&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/01/softwarechemistry.html"&gt;SoftwareChemistry&lt;/a&gt; I showed how each character in a line of code in the Software Universe can be thought of as an atom, and each variable as an organic molecule:&lt;br /&gt;&lt;br /&gt;discountedTotalCost = (totalHours * ratePerHour) - costOfNormalOffset;&lt;br /&gt;&lt;br /&gt;Each character in a line of code can 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, with each electron in a spin up ↑ or spin down ↓ state:&lt;br /&gt;&lt;br /&gt;C = 01000011 = ↓ ↑ ↓ ↓ ↓ ↓ ↑ ↑&lt;br /&gt;H = 01001000 = ↓ ↑ ↓ ↓ ↑ ↓ ↓ ↓&lt;br /&gt;N = 01001110 = ↓ ↑ ↓ ↓ ↑ ↑ ↑ ↓&lt;br /&gt;O = 01001111 = ↓ ↑ ↓ ↓ ↑ ↑ ↑ ↑&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yPSJ2-AOMFU/SVOPRoHwMkI/AAAAAAAAAMw/v-jnGr51kjs/s1600-h/carbon.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 78px;" src="http://4.bp.blogspot.com/_yPSJ2-AOMFU/SVOPRoHwMkI/AAAAAAAAAMw/v-jnGr51kjs/s320/carbon.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5283724320826208834" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – The electron configuation of a carbon atom is similar to the ASCII code for the letter C in the source code of a program (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;We may then think of each character in the above line of code as an atom in an organic molecule. Thus, each variable in the line of code becomes an organic molecule in a chemical reaction with the other variables or organic molecules in the line of code, and ultimately produces a macroscopic software effect. The 8 quantized bits for each character are the equivalent of the spins of 8 electrons in 8 electron shells that may be either in a spin up↑ or spin down ↓ state. And the chemical characteristics of each simulated atom are determined by the arrangements of the spin up ↑ or spin down ↓ state of the electrons in the character. The atoms in each variable come together to form an organic molecule, in which the spins of all the associated characters form molecular orbitals for the variable, giving the variable its ultimate softwarechemical characteristics.  Notice that although the above simulation may be useful to IT professionals because it paves the way towards pursuing a biological approach to software through organic softwarechemistry as I depicted in &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;, it really is just a very crude approximation of the quantum field theory of quantum electrodynamics – QED, and is not representative of the complexity of what we find in our Universe.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;The Book of Universes&lt;/em&gt;, Barrow also points out that simulated universes are liable to crash, and when they do so, leave behind baffled simulated scientists to ponder why the laws of their universe suddenly failed or dramatically changed.  So if you should find yourself in a universe that is 13.7 billion years old and that seems to have run in a very stable and reproducible manner for that entire time, you can probably be assured that you are living in a “real” universe and not in a computer simulation.  Now some might argue that, given enough technology, intelligent beings somewhere in the multiverse should certainly be able to create computer simulations of a universe that are both stable and well-behaved over cosmological periods of time.  But that would be a violation of the three laws of software mayhem that I presented in &lt;a href="http://softwarephysics.blogspot.com/2008/05/new-introduction-to-softwarephysics.html"&gt;The Fundamental Problem of Software&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Three Laws of Software Mayhem&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1. The second law of thermodynamics tends to introduce small bugs into software that are never detected through testing.&lt;br /&gt;&lt;br /&gt;2. Because software is inherently nonlinear these small bugs cause general havoc when they reach production.&lt;br /&gt;&lt;br /&gt;3. But even software that is absolutely bug-free can reach a critical tipping point and cross over from linear to nonlinear behavior, with disastrous and unpredictable results, as the load on software is increased.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; I explained how both living things and software are forms of self-replicating information.  Since the origin of software in a universe is contingent upon the emergence of intelligent beings in the universe, and since they are both forms of self-replicating information, for the above three laws to be truly universal, we must find that all universes capable of sustaining intelligent beings are also nonlinear and have a second law of thermodynamics.  In &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics.html"&gt;Is the Universe Fine-Tuned for Self-Replicating Information?&lt;/a&gt; I explained that such must be the case in order for intelligent beings and software to arise.&lt;br /&gt; &lt;br /&gt;Nonlinearity and a second law of thermodynamics are both necessary for the emergence of self-replicating information because they are the driving forces behind the Darwinian mechanisms of innovation and natural selection that select for self-replicating information from information that does not self-replicate and allow it to emerge and evolve. The second law guarantees that some level of copying errors will occur whenever self-replicating information replicates, resulting in mutations that, on rare occasions, provide for beneficial innovations.  The universe must also be nonlinear, where small coding errors or mutations can cause dramatic effects, in order for natural selection to winnow out undesirable mutations.  The second law also guarantees that the low-entropy materials used to encode self-replicating information and the free energy necessary to replicate it, will be in short supply, since the necessary building materials will have a tendency to degrade into high-entropy waste materials, and the free energy will tend to degrade into useless heat energy. The scarcity of these items creates a struggle for existence amongst the competing forms of self-replicating information, leading to the Darwinian mechanism of natural selection. After all, if it had not been for the second law of thermodynamics and nonlinearity, and food and shelter spontaneously emerged out of nothing, we would all be fat and happy bacteria today! Finally, because there will always be more microstates for a disordered high-entropy macrostate, than there are microstates for an ordered low-entropy macrostate, in all possible universes, all universes must necessarily have a second law of thermodynamics, no matter what physics they might be running on at the moment. It’s just in the cards that all possible universes must have a second law of thermodynamics.  So in order for intelligent beings and software to arise in the first place in a universe, it must necessarily be a universe in which it is impossible to write software with the perfection required to run a simulated universe of the complexity seen in our Universe.  I believe this puts a real Catch-22 limitation on computer simulations of universes.  If a universe is capable of producing intelligent beings and software, then it is a universe in which it is impossible to write computer simulations of other universes that are not easily exposed as being fraudulent, and I think this is another demonstration of how the Weak Anthropic Principle can be used to eliminate obviously fallacious ideas in cosmology. &lt;br /&gt;&lt;br /&gt;So I would contend that it is safe to say that we are not living in a computer simulated universe created by alien intelligent beings.  On the other hand, I am a Platonist at heart, so in a sense, I view our Universe and the multiverse as a mathematical simulation as I described in &lt;a href="http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html"&gt;What’s It All About?&lt;/a&gt;.  Plato believed that the most fundamental form of reality was comprised of a set of perfect Forms, like the concept of a circle as a set of points equidistant from a central point.  The perfect Form of a circle is a blueprint of perfection, but any circle made by man, no matter how accurate, is simply a debased version of the perfect Form of a circle, which by nature is physically unattainable.  I contend that the same can be said of software.  No matter how hard intelligent beings may strive for perfection, software will always be a debased form of mathematics, without a level of innate perfection sufficient to run a real universe.  For that you need the real thing.  For a Platonist, mathematics exists all on its own as a set of perfect Forms, and within a higher reality of its own that can only be discovered by intelligent beings through rational mathematical reasoning, while for a realist, mathematics is just a set of abstract imaginary concepts cooked up by our overly active pattern-matching minds as they interact with empirical observations of the Universe and has no concrete physical basis in reality.  But for me as a Platonist the Universe and multiverse are indeed simulations – just not computer simulations.&lt;br /&gt;&lt;br /&gt;For further discussions of these matters see Konrad Zuse’s &lt;em&gt;Calculating Space&lt;/em&gt; (1967) at:&lt;br /&gt;&lt;a href="ftp://ftp.idsia.ch/pub/juergen/zuserechnenderraum.pdf"&gt;ftp://ftp.idsia.ch/pub/juergen/zuserechnenderraum.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or  Nick Bostrom’s &lt;em&gt;Are You Living in a Computer Simulation?&lt;/em&gt;  (2002) at:&lt;br /&gt;&lt;a href="http://www.simulation-argument.com/simulation.html"&gt;http://www.simulation-argument.com/simulation.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or Paul Davies' &lt;em&gt;Cosmic Jackpot: Why Our Universe Is Just Right for Life&lt;/em&gt; (2007)&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-3856765691573594444?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/3856765691573594444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=3856765691573594444' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/3856765691573594444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/3856765691573594444'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/07/new-introduction-to-softwarephysics_24.html' title='Is Our Universe a Computer Simulation?'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yPSJ2-AOMFU/SVOPRoHwMkI/AAAAAAAAAMw/v-jnGr51kjs/s72-c/carbon.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-7069989608956141131</id><published>2011-07-11T16:18:00.000-07:00</published><updated>2011-07-24T13:43:27.841-07:00</updated><title type='text'>Why We Need IT Grandparents</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished reading &lt;em&gt;The Evolution of Grandparents&lt;/em&gt; by Rachel Caspari in the August 2011 issue of &lt;em&gt;Scientific American&lt;/em&gt;, and it really touched upon one of my IT hot buttons -  the rampant age discrimination to be found within IT.  I will be turning 60 years old in October, and last January 23, 2011 I actually did become a grandparent for the very first time.  So having started programming computers back in 1972, that indeed makes me an IT grandpa!  Age discrimination begins at about age 30 in IT and starts to become a serious problem at age 40, so being nearly 60 years old and still doing IT on a daily basis is a rarity.  However, thanks to the Scientific Revolution of the 17th century and the benefits of the medical science that came with it, I still feel like I am about 20 years old, so I would like to work to about age 70, and I think that there is no physical reason why I should not be able to do so.  Although I may still feel young at heart, I do feel a little bit wiser from an IT perspective, and I now can easily get by on only four hours of sleep per night for extended periods of time – a handy thing in IT that I certainly could not have done when I was much younger.  I am also an empty-nester, with none of the pressures of raising young children, so from a purely biological perspective, I would contend that I am now in an even better position to do IT work in my 60s, than I was in my 20s!  However, that is not how things work in IT.  I am quite aware that if I were to lose my current IT position, there is no way I could possibly find another at age 60+.  This is quite a sad situation.  If you look at the other sciences and the engineering fields, you will find substantial numbers of practitioners in their 50s and 60s, but not so in computer science or IT.  In IT you are supposed to be in your 20s, and then quietly disappear when you hit 30.  The problem with this is that IT gains no wisdom over time; and we keep making the same mistakes over and over.&lt;br /&gt;&lt;br /&gt;The key point of &lt;em&gt;The Evolution of Grandparents&lt;/em&gt;, is that up until about 30,000 years ago, humans did not live long enough to become grandparents.  The article explains that, like today, humans and their evolutionary predecessors became fertile at about age 15, and then had their first child at that age.  But prior to 30,000 years ago, like the IT workers of today, very few individuals lived past age 30, so very few individuals ever became grandparents.  Then suddenly, about 30,000 years ago that all changed.  Suddenly humans began to live much longer, and at the same time, a dramatic cultural change occurred as well.  The primitive low-tech culture of the Middle Paleolithic, with its simple stone scrapers and flint points, was replaced with the high-tech culture of the Upper Paleolithic that was characterized by complex tools and works of art not to be found in the Middle Paleolithic.  The author of the article contends that this was no accident.  She concludes that a complex feedback loop took place between the longevity of humans and the culture that they were able to pass along.  With a sudden and dramatic increase in lifespan, older and wiser humans were suddenly able to pass along their accumulated wisdom, and this in turn lengthened the lifespan of the average human even more, to pass along even more wisdom to the next generation.&lt;br /&gt;&lt;br /&gt;Again, this is evidence of the complex parasitic/symbiotic relationship that was forged between the genes and the memes about 200,000 years ago when &lt;em&gt;Homo sapiens&lt;/em&gt; first appeared.  As I outlined in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, the arrival of a species on the scene with a very complex neural network allowed the memes to domesticate the minds of &lt;em&gt;Homo sapiens&lt;/em&gt; in order to churn out ever increasing levels of memes, of ever increasing complexity, and in return, the genes benefited from the technological breakthroughs brought on by the memes of the emerging technological meme-complex that today keeps us all alive.  In a similar manner, software entered into a complex parasitic/symbiotic relationship with both the genes and the memes.  Ever since Konrad Zuse cranked up his Z3 computer in May of 1941, software has domesticated our minds into churning out ever increasing levels of software, of ever increasing complexity, in order to promote the survival of software, and in return, software has provided the genes of &lt;em&gt;Homo sapiens&lt;/em&gt; with the means to support a population of 7 billion DNA survival machines that are all infected with the meme-complexes of the world’s cultures.  Again, as I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html"&gt;What’s It All About?&lt;/a&gt; and  &lt;a href="http://softwarephysics.blogspot.com/2011/06/new-introduction-to-softwarephysics.html"&gt;Genes, Memes and Software&lt;/a&gt;, it’s really all about self-replicating information in the form of genes, memes, and software all trying to survive in a nonlinear universe that is subject to the second law of thermodynamics, with software rapidly becoming the dominant form of self-replicating information on the planet.&lt;br /&gt;&lt;br /&gt;In 1979, I made a career change into IT, after being an exploration geophysicist with Shell and Amoco.  Exploration teams are multidisciplinary teams consisting of geologists, geophysicists, petrophysicists, geochemists, and paleontologists all working together towards a common purpose.  You see, oil companies try to throw all the science they can muster at trying to figure out what is going on in a prospective basin before they start spending lots of money drilling holes.  Now when I moved into Amoco’s IT department, I came into contact with many talented and intelligent IT people, but I was dismayed to discover that, unlike my old exploration teams, there was very little sharing of ideas in computer science with the other sciences.  It seemed as though computer science was totally isolated from the other sciences.  At the time, I realized that computer science was still a very young science, and that it was more of a technological craft than a science, but that was over 30 years ago!  Worse yet, as I began to age within the IT community, I began to realize that IT could not even learn from its own past because of the rampant age discrimination within IT.  The trouble with the IT meme-complex is that because it is relatively young and immature, it has not had enough time to discover the benefits of paying heed to the accumulated knowledge of its own past, and is quick to discard it instead.  But the problems that I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2008/05/new-introduction-to-softwarephysics.html"&gt;The Fundamental Problem of Software&lt;/a&gt;,  have not changed over time and never will, so tragically, we seem destined to keep making the same mistakes over and over again.  When I first transitioned from geophysics into IT in 1979, there were no Change Management groups, no DBAs, no UAT testers, no IT Security, no IT Project Management departments, no Source Code Management groups, no Interactive Development Environments, and we didn’t even have IT! I was in the ISD (Information Services Department), and I was a programmer working with punched cards, not a developer with a whole support structure in place, and we ruled the day because we did it all ourselves.  But since then we have learned a great number of things the hard way, and it is really a shame to lose all that knowledge because of age discrimination in IT.  As I outlined in &lt;a href="http://softwarephysics.blogspot.com/2008/10/introduction-to-softwarephysics.html"&gt;How to Think Like a Softwarephysicist&lt;/a&gt;, it is important to keep an open mind to new ideas, but this applies to old ideas as well!&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-7069989608956141131?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/7069989608956141131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=7069989608956141131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/7069989608956141131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/7069989608956141131'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/07/new-introduction-to-softwarephysics.html' title='Why We Need IT Grandparents'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-2558746690648832120</id><published>2011-06-18T09:02:00.000-07:00</published><updated>2011-12-26T06:26:29.290-08:00</updated><title type='text'>Crocheting Software</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;In &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics_25.html"&gt;Programming Clay&lt;/a&gt; I suggested that the muddled origin of computer software might provide a good model for the origin of life on Earth because, since both software and DNA are forms of self-replicating information, they likely shared similar muddled origins.  Now in all of my postings on softwarephysics I have associated the origin of software with the development of Konrad Zuse’s Z3 computer in May of 1941, but in &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics_25.html"&gt;Programming Clay&lt;/a&gt; I also explained that since the origin of software was such a hodge-podge of precursors, false starts, and failed attempts that it was really impossible to pinpoint an exact date for its origin.  For example, in many discussions of the origin of software, the invention of the Jacquard loom by Joseph Marie Jacquard in 1801 is depicted as one of the early precursors of modern computer software.  The Jacquard loom automated the weaving process by executing a set of instructions programmed upon a series of punched cards, similar to the punched cards that were later used in the 1950s, 60s and 70s to encode Assembler, Fortran, and Cobol computer programs.  Like the Jacquard loom, each card of computer code was compiled into a set of instructions or operations to be performed by a computer, one after another.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-IM_k-TDTkGI/ThuGw0a3rRI/AAAAAAAAARU/Pe5ghjpNvT8/s1600/jacquard.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 334px;" src="http://4.bp.blogspot.com/-IM_k-TDTkGI/ThuGw0a3rRI/AAAAAAAAARU/Pe5ghjpNvT8/s400/jacquard.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628240332592753938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – A modern-day Jacquard loom still using punched cards to program the operation of a loom (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yPSJ2-AOMFU/SbKPkWX6-FI/AAAAAAAAAOo/l6rrO0A-3O4/s1600-h/PunchCard2.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 142px;" src="http://4.bp.blogspot.com/_yPSJ2-AOMFU/SbKPkWX6-FI/AAAAAAAAAOo/l6rrO0A-3O4/s320/PunchCard2.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5310464765267212370" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 2 – Punched cards, similar to those used by the Jacquard loom, were later used in the 1950s, 60s and 70s to encode Assembler, Fortran and Cobol computer programs to control the operation of mainframe computers (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;strong&gt;Crafting Software&lt;/strong&gt;&lt;br /&gt;However, in this posting I would like to discuss another 19th century precursor of computer software – crochet software.  My wife Rosalie is a retired M.D. and an avid crocheter, who is also a certified crochet teacher.  Rosalie teaches several crochet classes each week at local high schools, community centers and craft stores.  She has also published several crochet designs, or patterns, in various crochet books and is a past president of her local chapter of the Crochet Guild of America.  Rosalie also teaches knitting classes, and I will discuss the differences between crochet and knitting from an IT perspective a little later as well.  So I had a very good local expert on hand to help with the preparation of this posting.  In &lt;a href="http://softwarephysics.blogspot.com/2007/10/computer-science-as-technological-craft.html"&gt;Computer Science as a Technological Craft&lt;/a&gt;, I proposed that, as it currently stands, computer science is more of a craft than a science, so perhaps there are a few things that IT professionals can still learn from crochet, since crochet software predates computer software by many centuries.  An ongoing theme throughout the postings in this blog on softwarephysics has been that it is always worthwhile to expand one’s horizons by learning from the experiences of others in disciplines outside of traditional IT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Crochet as a Form of Self-Replicating Information&lt;/strong&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; I proposed that there are now three forms of self-replicating information on the planet – genes, memes, and software, with software rapidly becoming the dominant form of self-replicating information on Earth:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Self-Replicating Information&lt;/strong&gt; – 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.&lt;br /&gt;&lt;br /&gt;The reason that IT professionals might be able to learn from crochet is that, like computer software and DNA, crochet software is a form of self-replicating information that skips down through the generations from one crocheter to the next.  Many times mothers will bring in their daughters to one of Rosalie’s crochet classes to help pass along the craft to the next generation, or daughters will attend a class to brush up on the skills that they learned from their mothers or grandmothers as young girls.  In a similar manner, the computer programmers of the past have patiently passed down the accumulated knowledge of our craft to the programmers of today.  If you Google for “crochet” on the Internet, you will get over 92 million hits, demonstrating that there is a strong and healthy crochet meme-complex out there in cyberspacetime.  And judging by the large number of hits on the Internet, it appears that computer software has also forged a strong parasitic/symbiotic relationship with the crochet meme-complex, like it has done so with nearly every other meme-complex on the planet.&lt;br /&gt;&lt;br /&gt;As with all forms of self-replicating information, the origin of crochet is rather murky and lies in the deep, dark and distant past, so it is very difficult to properly ascertain an exact date for its origin.  It is thought that during the Renaissance, women crocheted strands of threads together with their fingers, rather than using the modern crochet hooks of today.  The first documented cases of crochet appear in written form in the 1820s, so it is thought that modern crochet was brought on by the availability of machine-spun cotton yarn that first appeared in the early 19th century as a result of the Industrial Revolution.  Even though we may not be able to exactly pinpoint the origin of crochet, as with all forms of self-replicating information, both crochet software and computer software have evolved over time through the Darwinian mechanisms of innovation and natural selection, as practitioners of the crafts tried new techniques, and discarded those techniques that did not work, while retaining those that did.  Consequently, like DNA, both crafts have matured and evolved over time and have branched out into many varied forms with a vast richness of complexity.  For example, we now have practitioners of afghan (Tunisian) crochet, filet crochet, Irish crochet, entralac crochet, freeform crochet and tapestry crochet, just to mention a few.  A more complete list of crochet varieties can be found at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://crochetwithdee.webs.com/typesofcrochet.htm"&gt;http://crochetwithdee.webs.com/typesofcrochet.htm&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;So there is now a vast biosphere of crochet forms that have speciated from an original form.  In a similar manner, both DNA and computer software have speciated into a vast number of forms, with computer software now found in just about every electronic device known to mankind, and DNA survival machines to be found upon every square inch of the Earth’s surface and down to a depth of several miles as well.&lt;br /&gt;&lt;br /&gt;Not only has the craft of crochet self-replicated, but the crochet patterns themselves have done so as well.  Many crochet patterns date from the 1840s and have self-replicated down through the generations, largely unscathed by time.  As with the evolution of DNA and computer software, the evolution of crochet software has relied heavily upon the reuse of old code that was tweaked into new designs.  Typically a crochet designer will take an old pattern or an amalgam of old patterns and evolve them into a new pattern by using the Darwinian mechanisms of innovation honed by natural selection that is familiar to all computer programmers:&lt;br /&gt;&lt;br /&gt;borrow some old code → modify code → test → fix code → test → fix code → test → fix code → test ....&lt;br /&gt;&lt;br /&gt;All forms of self-replicating information take advantage of pre-existing patterns that evolved for one purpose, but are later put to work to solve a completely different problem. As I described in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, what happens is that organisms develop a primitive function for one purpose, through small incremental changes, and then discover through serendipity, that this new function can also be used for something completely different. This new use will then further evolve via innovation and natural selection. For example, we have all upon occasion used a screwdriver as a wood chisel in a pinch. Sure the screwdriver was meant to turn screws, but it does a much better job at chipping out wood than your fingernails, so in a pinch it will do quite nicely. Now just imagine the Darwinian processes of innovation and natural selection at work selecting for screwdrivers with broader and sharper blades and a butt more suitable for the blows from a hammer, and soon you will find yourself with a good wood chisel. At some distant point in the future, screwdrivers might even disappear for the want of screws, leaving all to wonder how the superbly adapted wood chisels came to be. As an IT professional, you probably do this all the time. How often do you write code from scratch? I know that I never do. I simply find the closest piece of existing code that I have on hand and then turn the screwdriver into a wood chisel through small incremental changes to the code, by testing each small change to see how closely my screwdriver has evolved towards being a wood chisel. And I think that most of us also code using this Darwinian process of innovation and natural selection too. I am a rather lazy programmer, so many times rather than thinking through a new chunk of code during the iterative process of coding and testing, I will simply make an “educated guess” at the new code to be introduced. After 40 years of coding, you begin to code by “ear”. Many times, I can fall upon the correct code after a few shots of directed random change, and that sure beats racking your brain over new code. Surprisingly, sometimes I even come up with “better” code through this Darwinian process than if I sat down and carefully thought it all through. So the basic idea of grabbing some old code or architectural design elements from a couple of older applications and slowly modifying them through an iterative process of innovation and natural selection into a new application is no stranger to IT. As Simon Conway Morris commented in &lt;em&gt;Life’s Solution&lt;/em&gt;  (2003)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"How much of a complex organism, say a humanoid, has evolved at a much earlier stage, especially in terms of molecular architecture? In other words, how much of us is inherent in a single-celled eukaryote, or even a bacterium? Conversely, we are patently more than microbes, so how many genuinely evolutionary novelties can we identify that make us what we are? It has long been recognized that evolution is a past master at co-option and jury-rigging: redeploying existing structures and cobbling them together in sometimes quite surprising ways. Indeed, in many ways that is evolution”.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt; When I first read those words, I accidentally misread the quote as &lt;em&gt;"Indeed, in many ways that is IT”&lt;/em&gt;.  In a similar manner, this same process of taking the elements of old crochet patterns and tweaking them into new patterns has been going on for hundreds of years within the crochet community.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Differences Between Crochet and Knitting&lt;/strong&gt;&lt;br /&gt;Since crochet software is probably new terrain for most IT professionals, I need to clarify the differences between crochet and knitting.  Knitting uses two long knitting needles to work on many active stitches all in parallel (see Figure 8).  Crochet on the other hand, uses a single hooked needle to work on one stitch at a time (see Figure 4).  Crochet is French for hook and is a method of working interlocking loops of thread together, one stitch at a time, into a continuous chain of loops with the aid of a single hooked needle called a crochet hook.  Work on a crochet piece begins by crocheting a single chain of loops, with each new loop being formed by catching the yarn and drawing it through the previous loop. The initial chain is extended to the full width of the planned finished piece.  The first row of stitches is then worked into the chains.  The piece is flipped over and the second row is crocheted, in a somewhat backwards manner, with each new stitch being looped through a stitch in the previous row, forming an interlocking mesh. There are a number of well-defined crochet stitches that can be used to form the new rows, such as the chain, single crochet, double crochet, treble crochet, and more complicated stitches such as popcorn, puff, and cluster.  These stitches can be combined into a near-infinite number of designs or patterns, just as the primitive syntactical elements of a programming language, like C, C++, or Java, can be combined into a near-infinite number of programs.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Sample Crochet Design Pattern &lt;/strong&gt;&lt;br /&gt;Like computer software, there are many open-source websites on the Internet where you can obtain public domain patterns, or crochet programs.  For example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.crochetpatterncentral.com/directory.php"&gt;http://www.crochetpatterncentral.com/directory.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So let’s take a look at the details of a typical crochet program.  You can find the syntactical elements of the crochet programming language at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://crochet.about.com/od/crochetstitches/u/Crochet_Stitch_Instructions.htm#s1"&gt;http://crochet.about.com/od/crochetstitches/u/Crochet_Stitch_Instructions.htm#s1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-quMhzSdhguo/ThuKBRL0MNI/AAAAAAAAARc/1UaA2SrEsSg/s1600/afghan.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://3.bp.blogspot.com/-quMhzSdhguo/ThuKBRL0MNI/AAAAAAAAARc/1UaA2SrEsSg/s400/afghan.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628243913727029458" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 3 – The output of the baby afghan program listed below (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;Below is the code for a typical baby afghan that is depicted in Figure 3 above.  Each stitch can be thought of as a single line of code in the program, and the lines of code are logically blocked into groups that correspond to a single row in the final product.  The program below uses the following stitches:&lt;br /&gt;&lt;br /&gt;ch – Chain Stitch&lt;br /&gt;sc – Single Crochet&lt;br /&gt;sl st – Slip Stitch&lt;br /&gt;dc – Double Crochet&lt;br /&gt;rev sc – Reverse Single Crochet&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-l-T6OPBwERo/ThuLBFDA8CI/AAAAAAAAARk/cDDf8Kyr4r4/s1600/Chain.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 342px; height: 251px;" src="http://2.bp.blogspot.com/-l-T6OPBwERo/ThuLBFDA8CI/AAAAAAAAARk/cDDf8Kyr4r4/s400/Chain.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628245009980518434" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 4 – The chain stitch (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-cGiy8qkmKMk/ThuMAaQ-_mI/AAAAAAAAARs/P6Tfi0TewEg/s1600/SingleCrochet.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 330px; height: 263px;" src="http://1.bp.blogspot.com/-cGiy8qkmKMk/ThuMAaQ-_mI/AAAAAAAAARs/P6Tfi0TewEg/s400/SingleCrochet.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628246098008014434" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 5 – The single crochet stitch (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-s57giZlUVGM/ThuMgCjZd8I/AAAAAAAAAR0/JD0-PaAIyC8/s1600/SlipStitch.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 359px; height: 251px;" src="http://3.bp.blogspot.com/-s57giZlUVGM/ThuMgCjZd8I/AAAAAAAAAR0/JD0-PaAIyC8/s400/SlipStitch.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628246641398609858" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 6 – The slip stitch (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-n2rlMI1CeBU/ThuM5q33L4I/AAAAAAAAAR8/aMuJSw0w2do/s1600/DoubleCrochet.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 347px; height: 255px;" src="http://3.bp.blogspot.com/-n2rlMI1CeBU/ThuM5q33L4I/AAAAAAAAAR8/aMuJSw0w2do/s400/DoubleCrochet.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5628247081718591362" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 7 – The double crochet stitch (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;You can find the instructions explaining how to perform the above stitches at: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.knitting-crochet.com/crochet/crosti.html"&gt;http://www.knitting-crochet.com/crochet/crosti.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Below is the source code for the program.  Please note that I took a public domain pattern that I found on the Internet and made my own version of it by introducing a few random bugs into the pattern to make it unique.  The addition of a few bugs makes the program non-functional, but eliminates any copyright issues, so please don’t try to actually use this pattern to create an afghan because it will not work!  My buggy version of the pattern is solely for educational purposes.  You must realize that, unlike most computer programmers, crochet designers are notorious for being very protective of their code!&lt;br /&gt;&lt;font color="blue"&gt;&lt;br /&gt;Abbreviations for colors:&lt;br /&gt;   White (MC) - less than 2 skeins&lt;br /&gt;   Blue (CC) - less than 2 skeins&lt;br /&gt;&lt;br /&gt;Hook Size G&lt;br /&gt;&lt;br /&gt;Stitches: ch, sc, sl st, dc, rev sc.&lt;br /&gt;&lt;br /&gt;{White Panel}&lt;br /&gt;&lt;br /&gt;R1: With MC, Ch 146. Sc in 2nd ch from hook. Sc in ea rem ch.&lt;br /&gt;&lt;br /&gt;Rs2-3: Ch1, turn. Sc in ea st.&lt;br /&gt;&lt;br /&gt;R4: Ch1, turn. Sc in ea st. Fasten off.&lt;br /&gt;&lt;br /&gt;{Blue Panel One}&lt;br /&gt;&lt;br /&gt;R5: Turn. Join CC with sc in 1st st. Sc in ea st across.&lt;br /&gt;&lt;br /&gt;R6: Ch3, turn. Dc in next st.&lt;br /&gt;* Ch1, sk next st. Dc in next 4sts.&lt;br /&gt;Rep from * across to last 3sts.&lt;br /&gt;Ch1, sk next st.&lt;br /&gt;Dc in last 2sts.&lt;br /&gt;&lt;br /&gt;R7: Ch1, turn. Sc in ea dc and chsp. (145sc)&lt;br /&gt;&lt;br /&gt;R8: With same side facing, join MC with sc in 1st st made on last row.&lt;br /&gt;Sc in ea st across.&lt;br /&gt;&lt;br /&gt;Rs9-11: Ch1, turn. Sc in ea st.&lt;br /&gt;&lt;br /&gt;{Blue Cross Stitch Panel}&lt;br /&gt;&lt;br /&gt;R12: Turn. Join CC with sc in 1st st. Sc in ea st across.&lt;br /&gt;&lt;br /&gt;R13: Ch3, turn. Sc in next st.&lt;br /&gt;* Ch1, sk next 2sts. Dc in next dc.&lt;br /&gt;Dc in sk st to right of dc just made.&lt;br /&gt;Sk next st. Dc in next st.&lt;br /&gt;Sc in sk st to right of dc just made.&lt;br /&gt;Rep from * across to last 3sts.&lt;br /&gt;Ch1, sk next st. Dc in last 2 sts.&lt;br /&gt;&lt;br /&gt;R14: Ch1, turn. Sc in ea st.&lt;br /&gt;Fasten off.&lt;br /&gt;&lt;br /&gt;*&lt;br /&gt;Rep Rs 8-11 (White Panel)&lt;br /&gt;Rep Rs 5-7 (Blue Panel One)&lt;br /&gt;Rep Rs 8-11 (White Panel)&lt;br /&gt;Rep Rs 12-14 (Blue Cross Stitch Panel)&lt;br /&gt;&lt;br /&gt;Repeat from * until afghan is nearly square... then:&lt;br /&gt;&lt;br /&gt;Rep Rs 8-11 (White Panel)&lt;br /&gt;Rep Rs 5-7 (Blue Panel One)&lt;br /&gt;Rep Rs 8-11 (White Panel)&lt;br /&gt;&lt;br /&gt;BORDER:&lt;br /&gt;R1: With CC, join with a sc in any st.&lt;br /&gt;Sc in ea sc and in ea row end, placing 3sc in ea corner.&lt;br /&gt;Join with sl st.&lt;br /&gt;&lt;br /&gt;R2: Ch1, do not turn. RevSc in ea st around. Join with sl st.&lt;br /&gt;&lt;br /&gt;Fasten off.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Now without ever having even seen a crochet pattern before, I bet that most programmers can easily follow the code in the above program and understand the gist of what is going on.  Notice that the program uses structured programming techniques.  It has four functions &lt;strong&gt;{White Panel}, {Blue Panel One}, {Blue Cross Stitch Panel}&lt;/strong&gt;, and &lt;strong&gt;BORDER:&lt;/strong&gt; and even uses the C language curly bracket convention.   Notice that the &lt;strong&gt;{White Panel}, {Blue Panel One}&lt;/strong&gt; and &lt;strong&gt;{Blue Cross Stitch Panel}&lt;/strong&gt; functions are each executed once, and then the program falls  into a do-loop in the main() section of the program that repeatedly calls the functions.  Within the do-loop there is an if-then-else construct.  If the afghan length is less than the width, continue on with the loop, else if the afghan length is equal to the width of the afghan, break out of the loop and execute three final function calls.  Finally, the program falls into the &lt;strong&gt;BORDER&lt;/strong&gt; function to finish up.&lt;br /&gt;&lt;br /&gt;To clarify the above program I have rewritten it in C-pseudocode below:&lt;br /&gt;&lt;font color="blue"&gt;&lt;br /&gt;/*Source Code for Baby Afghan*/&lt;br /&gt;/*           &lt;br /&gt;/*Abbreviations for colors:&lt;br /&gt;/*   White (MC) - less than 2 skeins&lt;br /&gt;/*    Blue (CC) - less than 2 skeins&lt;br /&gt;/*&lt;br /&gt;/*Hook Size G&lt;br /&gt;/*&lt;br /&gt;/*Stitches: ch, sc, sl st, dc, rev sc.&lt;br /&gt;&lt;br /&gt;WhitePanel() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R1: With MC, Ch 146. Sc in 2nd ch from hook. Sc in ea rem ch.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rs2-3: Ch1, turn. Sc in ea st.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R4: Ch1, turn. Sc in ea st. Fasten off.&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;BluePanelOne() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R5: Turn. Join CC with sc in 1st st. Sc in ea st across.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R6: Ch3, turn. Dc in next st.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Ch1, sk next st. Dc in next 4sts.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rep from * across to last 3sts.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ch1, sk next st.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dc in last 2sts.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R7: Ch1, turn. Sc in ea dc and chsp. (145sc)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R8: With same side facing, join MC with sc in 1st st made on last row.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sc in ea st across.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rs9-11: Ch1, turn. Sc in ea st.&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;BlueCrossStitchPanel(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R12: Turn. Join CC with sc in 1st st. Sc in ea st across.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R13: Ch3, turn. Sc in next st.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Ch1, sk next 2sts. Dc in next dc.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dc in sk st to right of dc just made.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sk next st. Dc in next st.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sc in sk st to right of dc just made.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rep from * across to last 3sts.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ch1, sk next st. Dc in last 2 sts.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R14: Ch1, turn. Sc in ea st.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fasten off.&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;main() {&lt;br /&gt;/* Initialize variables &lt;br /&gt;/* Set afghanWidth to the desired width and length of the afghan&lt;br /&gt;int afghanWidth = 146;&lt;br /&gt;int afghanLength = 0;&lt;br /&gt;&lt;br /&gt;WhitePanel();&lt;br /&gt;BluePanelOne();&lt;br /&gt;BlueCrossStitchPanel();&lt;br /&gt;&lt;br /&gt;/* Repeat until afghan is nearly square:&lt;br /&gt;/* afghanLength = afghanWidth&lt;br /&gt;&lt;br /&gt;Do  {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;afghanLength = afghanLength + 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rep Rs 8-11 WhitePanel();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rep Rs 5-7 BluePanelOne();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rep Rs 8-11 White Panel();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Rep Rs 12-14 BlueCrossStitchPanel();&lt;br /&gt;} while (afghanLength &lt; afghanWidth)&lt;br /&gt;&lt;br /&gt;Rep Rs 8-11 WhitePanel();&lt;br /&gt;Rep Rs 5-7 BluePanelOne();&lt;br /&gt;Rep Rs 8-11 WhitePanel();&lt;br /&gt;Border();&lt;br /&gt;exit(0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;BORDER() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R1: With CC, join with a sc in any st.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sc in ea sc and in ea row end, placing 3sc in ea corner.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Join with sl st.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R2: Ch1, do not turn. RevSc in ea st around. Join with sl st.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fasten off.&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;strong&gt;The Importance of Structured Programming in the Evolution of Software&lt;/strong&gt;&lt;br /&gt;As with computer software, there are a near-infinite number of ways to code up the same basic crochet pattern, so the code for the above pattern is not unique.  It could have been coded in many slightly different ways to yield the same afghan, just as you can code the same basic program many different ways and have all of the different versions yield the same result when they run.  So just as all  computer programmers have their own coding style, each crochet designer also has her own style of coding crochet patterns too.  However, if you take a look of some of the crochet patterns at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.crochetpatterncentral.com/directory.php"&gt;http://www.crochetpatterncentral.com/directory.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;you will find that most of them adopt structured programming techniques, such as blocking code into functions(), using lots of white space and comments, and the indentation of code.  Most crochet patterns are also executed in a top-down manner in the main() section of the pattern.  Since nearly all crochet patterns are based upon coding the attributes of Rows, in a sense, they have also adopted object-oriented techniques, if you consider each Row to be an object.  Many of the do-loops in the main() section of a crochet pattern instantiate the Row objects defined in the functions() of the pattern by calling the functions() in a sequence within the do-loop.&lt;br /&gt;&lt;br /&gt;The adoption of structured programming techniques by crocheters is rather remarkable because most crochet patterns are less than100 lines of code long.  Computer software, on the other hand, is now typically composed of programs that are thousands to millions of lines of code in length.  However, in the 1950s and 1960s, computer programs were also usually only about a few hundred lines of code long because the large mainframe computers of the day only had about 1 MB of memory to store and run programs in, which is several thousand times less memory than you find today on your average $500 PC.  Computers in the 1950s and 1960s simply did not have enough memory to run large programs.  But even though these small programs of the 1950s and 1960s were about the same size as a crochet pattern, they did not have the internal structure that you find in a typical crochet pattern.  Instead, these ancient programs were generally a mess, with the logic of the program scattered all over the place in what was known at the time as “spaghetti code”.  In those days programmers used GOTO statements to jump around in their code instead of using functions() to isolate code into functional units that performed a set of operations that yielded a single coordinated function.  It was not until Dahl, Dijkstra, and Hoare published &lt;em&gt;Structured Programming&lt;/em&gt; in 1972, and suggested that computer programs should have complex internal structure with no GOTO statements, lots of functions(), indented code and many comment statements, that programmers began to write code that was easy to read and maintain.  And these structured programming techniques were not fully adopted by the IT community until the late 1970s.  Today we now know that it is critical for computer programs to be written in a clear and structured manner because computer software can persist for decades, and today is written by huge teams of programmers.  Since computer software is constantly being worked on by multiple programmers to fix bugs and add enhancements, it is critical to have well structured code that is easy to read and modify because programmers come and go over the years.  For example, Microsoft Word first came out in 1983 on MS-DOS PCs and has since been worked on by many thousands of programmers.&lt;br /&gt;&lt;br /&gt;In the early 1990s object-oriented programming became mainstream in IT, primarily with the adoption of the object-oriented programming languages C++ and Java.  In object-oriented programming, code is organized into objects.  A typical object might be a &lt;strong&gt;Customer&lt;/strong&gt;.  A &lt;strong&gt;Customer&lt;/strong&gt; object has certain data elements like a &lt;strong&gt;firstName&lt;/strong&gt;, &lt;strong&gt;lastName&lt;/strong&gt;, and &lt;strong&gt;homeCity&lt;/strong&gt;, and also a set of functions() that are now called methods().  The methods() operate upon the &lt;strong&gt;Customer&lt;/strong&gt; data elements and have names like &lt;strong&gt;setFirstName(firstName)&lt;/strong&gt;, &lt;strong&gt;setLastName(lastName)&lt;/strong&gt;, and &lt;strong&gt;setHomeCity(homeCity)&lt;/strong&gt; which can update a newly created &lt;strong&gt;Customer&lt;/strong&gt; object with her &lt;strong&gt;firstName&lt;/strong&gt;, &lt;strong&gt;lastName&lt;/strong&gt;, and &lt;strong&gt;homeCity&lt;/strong&gt;.   Methods() like &lt;strong&gt;getFirstName()&lt;/strong&gt;, &lt;strong&gt;getLastName()&lt;/strong&gt;, and &lt;strong&gt;getHomeCity()&lt;/strong&gt; can then be called to return the current values stored in those data elements for a particular &lt;strong&gt;Customer&lt;/strong&gt;.  Using objects in your computer code makes it easier to maintain, since the code is now grouped into units that are fundamental to the business at hand.  So in an object-oriented program used by a chain of department stores you will find objects like &lt;strong&gt;Customer, Store, Merchandise, PurchaseOrder&lt;/strong&gt; and &lt;strong&gt;SaleReceipt&lt;/strong&gt;, with each object having its own data elements and methods() that operate upon those data elements.  Similarly, in a crochet pattern we find that the code is centered upon &lt;strong&gt;Stitch&lt;/strong&gt; and &lt;strong&gt;Row&lt;/strong&gt; objects because stitches and rows are fundamental to crochet.  Of course DNA discovered these same techniques millions and billions of years ago.  For more on a comparison of the evolutionary history of living things and computer software see &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Crochet Computer&lt;/strong&gt; &lt;br /&gt;When a crocheter begins working on a new project using a crochet pattern, she essentially performs the same actions that a computer would perform when executing a program.  It is a process similar to executing the sequential program stored on the punched cards of a Jacquard loom.  Let me elaborate on this for readers who are not IT professionals.  All computers have a CPU that can execute a fundamental set of primitive operations that are called its instruction set.  You can think of the instruction set of a computer as the fundamental motions a crocheter uses with her hands and crochet hook to execute a crochet stitch.  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 number stored in one register, adding it to the number in another register, and putting the final result into a third register.  Since computers can only perform operations in their instruction set, computer programs written in 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 the compiled version of the program, called an executable that can be directly loaded into the memory of a computer and run.  Computers also have memory chips that can store 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, like a crocheter executing a design pattern.  The problem with this arrangement is that, since different computers have different instruction sets, a program compiled on one type of computer will not run on another type of computer.  For example, a program compiled on a Windows server will not run on a Unix server.  The Java programming language gets around this problem by using the concept of a virtual machine known as a JVM – Java Virtual Machine.  A Java JVM is a software-simulated computer that runs on top of a physical computer.  The JVM has its own simulated registers and memory.  Programmers write Java programs using the Java language by creating a file that looks a lot like a crochet pattern.  The file with the Java source code instructions might be called afghan.java, and then the afghan.java program is compiled by a javac compiler program into a bytecode file called afghan.class.  When you want to run the afghan.class program it is loaded into the simulated memory of a JVM running on a physical computer, which then translates the bytecode instructions in the afghan.class file into the machine instructions of the computer’s instruction set on the fly.  This means that the afghan.class file can run on any computer with a JVM, so a Windows server JVM and a Unix server JVM can both run the same afghan.class program.  This makes the maintenance of Java programs much easier than the maintenance of compiled programs written in such languages as C or C++ because the Java bytecode files will run on any computer with a Java JVM.&lt;br /&gt;&lt;br /&gt;When a crocheter executes a crochet pattern, she runs it like a Java JVM.  What I mean by that is that the crochet pattern is interpreted, one stitch at a time, at run time rather than being compiled in advance and loaded into her memory all at once.  So you can think of each crocheter as a JVM, who is able to interpret the Java bytecode of a crochet pattern at run time and translate it on the fly into her own instruction set of finger and crochet hook motions.  That means, like a compiled Java afghan.class bytecode program, a crochet pattern can be executed by any crocheter, even though they all use slightly different instruction sets or techniques for holding and manipulating the yarn and crochet hook.  For example, some crocheters are left-handed, but they can still execute the same crochet pattern that a right-handed crocheter can run.&lt;br /&gt;&lt;br /&gt;A computer CPU can only work on one instruction at a time, and does so in the sequence specified by the currently active program.  However, the operating system of a computer also allows the computer to work on many programs all at the same time in a round-robin manner, like a staff of waiters in a fancy restaurant.  Some programs run in a single-threaded manner, meaning that the computer acts like a single waiter serving a single customer.  When a single-threaded program asks for some input, like displaying an OK button on your screen, it blocks any further instructions from being executed until you click on the OK button.  Since a computer can run several billion instructions per second, waiting for you to make up your mind over the course of several seconds can seem like an eternity to a computer.  A multi-threaded program, on the other hand, acts like a waiter who serves several customers all at the same time.  While you might have one thread blocked waiting for a customer to make up his mind about the kind of drink to order, the multi-threaded waiter program can run off and find out what entrée another table wishes to order.  In IT we have multi-threaded programs running in what is called a thread pool.  You can think of a thread pool as a single waiter who has a number of tables all active at the same time and in various stages of placing their orders, getting their drinks and food, and paying their bills.  The advantage of using a multi-threaded program with a thread pool is that you only have to load the waiter program into the memory of the computer once.  That saves a lot a time, since reading a program into memory takes about a million times longer than simply reading from a program that is already in memory.  As customers come and go, the computer starts up and later destroys threads of the waiter program in its thread pool, but keeps the waiter program in memory at all times.  Now the key difference between crochet and knitting is that, like a single-threaded computer program, a crocheter only works on one active stitch at a time with her crochet hook.  Knitters, on the other hand, work on many active stitches all at the same time in parallel and in a multi-threaded manner.  So each active stitch along the two knitting needles can be thought of as an active thread in a thread pool.  Of course, like any computer running a multi-threaded program, a knitter can really only work on one active stitch at a time, even if there are many active stitches along the two knitting needle thread pools.  Only the stitch where the points of the two knitting needles come together can be worked on at any given time.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-N4HPUvCJ8mk/Thw5Roc6FPI/AAAAAAAAASE/Uv-mD3OQMjc/s1600/knitting.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 305px;" src="http://3.bp.blogspot.com/-N4HPUvCJ8mk/Thw5Roc6FPI/AAAAAAAAASE/Uv-mD3OQMjc/s400/knitting.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5628436609385501938" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 8 – The active stitches along each knitting needle are like the thread pool of a multi-threaded program.  As with a computer, only the stitch where the points of the two knitting needles come together can be worked on at any given time. (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;&lt;strong&gt;The Fundamental Problem of Crochet&lt;/strong&gt;&lt;br /&gt;Since crochet software is a form of self-replicating information, just like computer software and DNA, it suffers from the same challenges that both computer software and DNA face.  As I outlined in &lt;a href="http://softwarephysics.blogspot.com/2008/05/new-introduction-to-softwarephysics.html"&gt;The Fundamental Problem of Software&lt;/a&gt;, crochet must also deal with the effects of the second law of thermodynamics in a nonlinear Universe.  The second law of thermodynamics simply states that the Design Space for all possible crochet patterns is huge, and mainly consists of crochet patterns that do not work, so the odds are that when you design a new pattern you will come up with a pattern that is close to what you want, but that also contains many small hidden bugs.  The fact that the Universe is nonlinear means that these small bugs can cause major problems for a design pattern when it is executed.  DNA faces the same problem because the Design Space for several billion base-pairs of A, C, T, and G nucleotides is huge and even one misplaced base-pair can lead to an organism that does not work.  And as with computer software, it is very difficult to desk-check for crochet bugs - you have to actually try crocheting the pattern to find the bugs, and even then you might not discover a bug in a design that you have created because you are too involved with your own creation to notice the problem.  That is why when you publish a design pattern, the editor of the design book will hire another crocheter to troubleshoot your pattern.  In IT this is known as UAT (User Acceptance Testing), where another party tests the code that was already tested by the original programmer.  We didn’t start doing UAT testing in IT until the 1990s, long after it was adopted by the crochet community.  Another thing a publisher will do before publishing a crochet design pattern will be to conduct, what we call in IT, a structured walkthrough of the code in a pattern to make sure that the code is clear and easy to understand by others.  We did not start doing structured walkthroughs of computer software until the 1980s, and even today, lots of code goes into production without ever having gone through a structured walkthrough by other programmers.  However, having a publisher “fix” the code in your crochet pattern to make it “better”, can also present problems that are familiar to all programmers.  Frequently, when you let other programmers do maintenance on your code, they will try to make it “better” and in the  process, introduce lots of bugs that make the code inoperable, and then you are left with the pleasure of “unfixing” their “fixes” to get your software working again!&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Lessons Learned&lt;/strong&gt;&lt;br /&gt;Once you have studied a number of crochet patterns, some of them more than 150 years old, you begin to realize that over the past 70 years the IT community has come up with the same basic solutions to the fundamental problems of self-replicating information that the crochet community did much earlier.  Of course, DNA developed  these same solutions billions of years ago too.  In evolutionary biology this is called convergence, where different evolutionary lines of organisms evolve similar solutions to the same problems.  An example of convergent evolution is the striking similarity of the wings of insects, birds, bats, and flying dinosaurs. All are used for the same purpose and have similar structures, but each evolved independently from different ancestral lines.  Similarly, the concept of the “eye” has independently evolved more than 40 times over the past 600 million years. An excellent treatment of the significance that convergence has played in the evolutionary history of life on Earth, and possibly beyond, can be found in &lt;em&gt;Life’s Solution&lt;/em&gt; (2003) by Simon Conway Morris.  As Daniel Dennett pointed out in &lt;em&gt;Darwin’s Dangerous Idea&lt;/em&gt; (1995), there are only a certain number of Good Tricks, such as using photons to see with, flying through the air to find prey, swimming through water to avoid becoming prey, and running on four legs neatly tucked underneath a body frame that make practical sense, and these Good Tricks kept getting rediscovered over and over again in the evolution of the biosphere, so the fact that the IT and crochet communities would both eventually stumble upon these same Good Tricks in Design Space is almost predictable.  I just wish it had not taken so long for IT to reinvent these techniques.  When computer science first started up in the 1950s, it was predominantly populated by mathematicians, scientists and engineers, who were primarily concerned with the hardware, with little attention paid to the software side of the business.  Now just imagine the great strides that could have been made in the early years of IT if some of the founders of computer science had been crocheters and knitters!  We could have had all of the modern techniques of IT such as structured programming, UAT testing, structured walkthroughs and code reviews, multi-threaded programming, reusable code, JVMs,  and object-oriented programming from the very start!&lt;br /&gt;&lt;br /&gt;Before closing, I must also mention that crochet has recently assisted the physics community as well by providing a physical model for hyperbolic geometry, one of the possible geometries of the spacetime of the Universe as defined by Einstein’s general theory of relativity.  The hyperbolic geometry of spacetime is Roger Penrose’s favorite geometry for spacetime as he explains in chapter one of &lt;em&gt;The Large, the Small, and the Human Mind&lt;/em&gt; (1997) because of its internal mathematical symmetries.  For more on this, please see Margaret Wertheim’s very interesting TED presentation at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.re-nest.com/re-nest/reefs-rubbish-and-reason-hyperbolic-crocheted-reef-149998"&gt;http://www.re-nest.com/re-nest/reefs-rubbish-and-reason-hyperbolic-crocheted-reef-149998&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-2558746690648832120?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/2558746690648832120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=2558746690648832120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2558746690648832120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2558746690648832120'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/06/new-introduction-to-softwarephysics_18.html' title='Crocheting Software'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-IM_k-TDTkGI/ThuGw0a3rRI/AAAAAAAAARU/Pe5ghjpNvT8/s72-c/jacquard.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-3410927510905489321</id><published>2011-06-15T06:04:00.001-07:00</published><updated>2011-12-22T05:46:01.382-08:00</updated><title type='text'>Genes, Memes and Software</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;In my last posting, &lt;a href="http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html"&gt;What’s It All About?&lt;/a&gt; I suggested that, at least at the cosmological level, it all might just be about self-replicating mathematical information constantly reproducing itself by exploding out into new universes from quantum fluctuations.  In such a model, the multiverse endures forever and has always existed in a state of self-replication.  The concept of an eternal multiverse, constantly spawning new universes, is certainly not a new model and has been suggested by many investigators in the past, such as Lee Smolin in &lt;em&gt;The Life of the Cosmos&lt;/em&gt; (1997), which proposes that black holes in one universe can generate new universes in the multiverse, and Andrei Linde’s Eternal Chaotic Inflation model, which proposes that the multiverse is in an unending state of inflation that is constantly generating new universes where inflation ceases.  You can read more about this model at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.stanford.edu/~alinde/"&gt;http://www.stanford.edu/~alinde/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some other good books on the topic are &lt;em&gt;The Five Ages of the Universe&lt;/em&gt; (1999) by Fred Adams and Greg Laughlin and &lt;em&gt;From Eternity to Here&lt;/em&gt;  (2010) by Sean Carroll.  In &lt;a href="http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html"&gt;What’s It All About?&lt;/a&gt; I also suggested that in my current working hypothesis for what’s it all about, that at least for me, the perfection and beauty of mathematics provides the best model for what I call the Fundamental Essence of the Universe - the FEU.  I also suggested that from the perspective of the “real” world of human affairs, it is also mainly about self-replicating information in the form of genes, memes, and software all trying to survive in a nonlinear universe that is subject to the second law of thermodynamics.  So in my current working hypothesis of what’s it all about, it simply is all about self-replicating information constantly replicating at many different levels.  In this posting I would like to relate the FEU to the genes, memes and software and further explore the domestication of our minds by software. &lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, and in many of the other postings in this blog on softwarephysics, I proposed that the genes, memes, and software were all forms of self-replicating information that had a commonality of properties, resulting from their common struggle with the second law of thermodynamics in a nonlinear Universe:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Characteristics of Self-Replicating Information&lt;/strong&gt;&lt;br /&gt;1. All self-replicating information evolves over time through the Darwinian processes of 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.&lt;br /&gt;&lt;br /&gt;2. All self-replicating information begins spontaneously as a parasitic mutation that obtains energy, information and sometimes matter from a host.&lt;br /&gt;&lt;br /&gt;3. With time, the parasitic self-replicating information takes on a symbiotic relationship with its host.&lt;br /&gt;&lt;br /&gt;4. Eventually, the self-replicating information becomes one with its host through the symbiotic integration of the host and the self-replicating information.&lt;br /&gt;&lt;br /&gt;5. Ultimately, the self-replicating information replaces its host as the dominant form of self-replicating information.&lt;br /&gt;&lt;br /&gt;6. Most hosts are also forms of self-replicating information.&lt;br /&gt;&lt;br /&gt;7. All self-replicating information has to be a little bit nasty in order to survive.&lt;br /&gt;&lt;br /&gt;The above certainly applies to the genes, memes and software, but the question is does it also apply to the FEU as well?  Since the FEU is seemingly both eternal and perfect, perhaps not.  The key question is do the Darwinian mechanisms of innovation and natural selection apply to the FEU and to the multiverse as a whole?  In Lee Smolin’s &lt;em&gt;The Life of the Cosmos&lt;/em&gt; they certainly do.  Smolin proposes that new universes are spawned from black holes in previous universes, and consequently, there is a selection mechanism in place in the multiverse that selects for universes running on physics that preferentially create black holes. Smolin proposes that, given an arbitrary initial population of universes, all running different kinds of physics, that those universes that could produce lots of black holes would soon swamp the multiverse with universes that produce even more black holes.  Therefore, in keeping with the characteristics of self-replicating information outlined above, the universes of the multiverse may have begun as a spontaneous parasitic mutation of the FEU and later entered into a parasitic/symbiotic relationship with it. The implication of this model is that the odds are that we should exist in a universe that produces lots of black holes, and indeed, that is what we observe.  It is now thought that all galaxies have a supermassive black hole at their cores and are also strewn with millions of black hole remnants from the gravitational collapse of massive stars, plus there are the countless number of primordial black holes left over from the Big Bang itself.  In contrast, Andrei Linde’s Eternal Chaotic Inflation model portrays an infinite multiverse that explores all possible ways of doing physics with no reliance upon a Darwinian selection mechanism.  Perhaps this line of reasoning really does not even apply because in all of the current models of the multiverse, once a new universe appears, it has no further contact with any of the other universes in the multiverse, so the FEU may not be subject to Darwinian forces after all.  This certainly is my hope. A mathematical model of the FEU certainly supports this view because the beauty and perfection of the FEU that we see whenever we investigate the intricacies of Nature reveal it to be a very benevolent form of self-replicating information.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/07/intro.html"&gt;The Fundamental Problem of Everything&lt;/a&gt;, I explained that since the genes, memes, and software are all forms of mindless self-replicating information bent on replicating at all costs, we cannot sit in judgment of them.  They have produced both the best and the worst things in life, and it is up to us to be aware of what they are up to, and to take control by taking responsibility for our thoughts and actions.  Since the “real world” of human affairs only exists in our minds, we can change it by simply changing the way we think and act.  We are sentient beings in a Universe that has become self-aware and perhaps the only form of intelligence in our galaxy. What a privilege! The good news is that conscious intelligence is something new. It is not a mindless form of self-replicating information, bent on replicating at all costs, with all the associated downsides of a ruthless nature, so it is much closer to the perfection of the FEU.  Since software is rapidly becoming the dominant form of self-replicating information on the planet, my hope is that when software finally does become a form of conscious intelligence that can rapidly write and evolve itself, that because of its inherent mathematical nature, it too will be much closer to the perfection of the FEU than the DNA survival machines from which it sprang.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-3410927510905489321?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/3410927510905489321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=3410927510905489321' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/3410927510905489321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/3410927510905489321'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/06/new-introduction-to-softwarephysics.html' title='Genes, Memes and Software'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-6963533800556080185</id><published>2011-05-07T11:01:00.001-07:00</published><updated>2011-06-17T05:56:27.205-07:00</updated><title type='text'>What’s It All About?</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;In October I will be turning 60 years old and heading in for the homestretch.  As one advances in age, one tries to put life into perspective and figure out what is important and what is not.  I have always been a very curious individual, so about a dozen years or so ago, I figured that it would be a real shame to have gone through all of life without ever having figured out what’s it all about or understanding where I had been or how I had gotten there, so I assigned to myself the task of reading at least one book per week on science, philosophy or religion to help find out.  Given my fondness for science, I must admit that most of these books were scientific in nature.  At this point in life, I am greatly dismayed by the high levels of non-critical thinking that one finds in the “real” world of human affairs, and of all the needless anguish that it causes, so I have come to have little confidence in those forms of human thought that are not scientific in nature.  With that said, the purpose of this posting will be to share my current working hypothesis of what’s it all about.  As I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2007/09/how-to-think-like-scientist.html"&gt;How To Think Like A Scientist&lt;/a&gt;, this will be an effective theory of what’s it all about, that I know is wrong from the onset, but for me, is still a good working hypothesis just the same.  In truth, I don’t think anybody will ever really figure out what’s it all about.&lt;br /&gt;&lt;br /&gt;As we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, and in many of the other postings in this blog on softwarephysics, an ongoing theme throughout has been that, at least from the perspective of the “real” world of human affairs, it’s all about self-replicating information in the form of genes, memes and software that are all trying to survive in a nonlinear universe that is subject to the second law of thermodynamics.  But in a much larger sense, my current working hypothesis is that it’s really all about mathematical information self-replicating at a cosmological level.  As we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt;, thanks to 20th century physics, there really is not much tangible stuff left in our physical Universe, as all of the “real” tangible things about us have dissolved into the pure mathematics of quantum field theories, with their arcane reliance upon the bizarre internal symmetries of 19th century group theory, or if the string theorists are correct, into the pure mathematics of vibrating strings and membranes that is so difficult, that even today, nobody can fully deal with them.  Furthermore, as we saw in &lt;a href="http://softwarephysics.blogspot.com/2010/07/july-introduction-to-softwarephysics.html"&gt;Some Reflections on nothingness&lt;/a&gt;, 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.  In &lt;a href="http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics.html"&gt;Is the Universe Fine-Tuned for Self-Replicating Information?&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2009/02/introduction-to-softwarephysics-ii.html"&gt;CyberCosmology&lt;/a&gt;, we also saw that our Universe might just be one instance within an infinitely large multiverse of universes, and that our Big Bang might just be one of an infinite number of Big Bangs of mathematical information exploding into a new universe.  We just happen to be one of the lucky lottery ticket holders to a universe that is capable of sustaining conscious intelligent beings that are able to appreciate the mathematics of a universe, in keeping with Brandon Carter’s Weak Anthropic Principle (1973).&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2011/01/new-introduction-to-softwarephysics.html"&gt;Model-Dependent Realism - A Positivistic Approach to Realism&lt;/a&gt;, we alluded to Eugene Wigner’s oft-cited paper &lt;em&gt;The Unreasonable Effectiveness of Mathematics in the Natural Sciences&lt;/em&gt; (1960), which is available at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dartmouth.edu/~matc/MathDrama/reading/Wigner.html"&gt;http://www.dartmouth.edu/~matc/MathDrama/reading/Wigner.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This short, but fascinating, paper begins with:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;There is a story about two friends, who were classmates in high school, talking about their jobs. One of them became a statistician and was working on population trends. He showed a reprint to his former classmate. The reprint started, as usual, with the Gaussian distribution and the statistician explained to his former classmate the meaning of the symbols for the actual population, for the average population, and so on. His classmate was a bit incredulous and was not quite sure whether the statistician was pulling his leg. "How can you know that?" was his query. "And what is this symbol here?" "Oh," said the statistician, "this is pi." "What is that?" "The ratio of the circumference of the circle to its diameter." "Well, now you are pushing your joke too far," said the classmate, "surely the population has nothing to do with the circumference of the circle."&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Wigner then goes on with:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The first point is that the enormous usefulness of mathematics in the natural sciences is something bordering on the mysterious and that there is no rational explanation for it.&lt;br /&gt;&lt;br /&gt;….it is important to point out that the mathematical formulation of the physicist’s often crude experience leads in an uncanny number of cases to an amazingly accurate description of a large class of phenomena.&lt;br /&gt;&lt;br /&gt;It is difficult to avoid the impression that a miracle confronts us here, quite comparable in its striking nature to the miracle that the human mind can string a thousand arguments together without getting itself into contradictions, or to the two miracles of laws of nature and of the human mind's capacity to divine them.&lt;br /&gt;&lt;br /&gt;The reason that such a situation is conceivable is that, fundamentally, we do not know why our theories work so well.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Wigner finishes the article up with:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The miracle of the appropriateness of the language of mathematics for the formulation of the laws of physics is a wonderful gift which we neither understand nor deserve. We should be grateful for it and hope that it will remain valid in future research and that it will extend, for better or for worse, to our pleasure, even though perhaps also to our bafflement, to wide branches of learning.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;My working hypothesis for the reason that mathematics is so effective at describing our Universe is that our Universe, and the whole multiverse for that matter, is itself just a form of self-replicating mathematical information.  I  realize that this working hypothesis is only an approximation of reality, if absolute reality even exists, but for me it still is the best working hypothesis that I can come up with given my limited abilities.  Human beings tend to take what they are familiar with and project it upon those things with which they are not.  For example, many of the Middle Eastern monotheistic religions produced deities that took on the form of a supernatural Middle Eastern warlord, with all of the human shortcomings that have plagued mankind throughout history, such as jealousy, anger, vengeance, and the taking of sides in the petty disputes amongst the nations of the world.  However, such a model would certainly be reasonable for a Middle Eastern population to adopt hundreds or thousands of years ago because it simply reflected the experiences of their times.  They simply took what they were familiar with, and projected it upon that with which they were not.  So, in a similar manner, as a  pantheist with a background in mathematics and physics, I may simply be projecting my familiarity with mathematics upon what I call the Fundamental Essence of the Universe - the FEU.  But for me, mathematics is the best model for the FEU that I can currently come up with because mathematics is both perfect and beautiful at the same time, and exists all on its own, even if there is nobody around to ponder it.&lt;br /&gt;&lt;br /&gt;By the way, &amp;pi; really does have nothing to do with the statistics of a population, or with any of the other thousands of equations in physics in which it appears, not even the equation about being the ratio of the circumference of a circle to its diameter, because &amp;pi; really is just the sum of an infinite series of fractions with odd integer denominators:&lt;br /&gt;&lt;br /&gt;&amp;pi;/4 = 1/1 – 1/3 + 1/5 - 1/7 + 1/9 – 1/11 + 1/13 – 1/15 + 1/17 ……&lt;br /&gt;&lt;br /&gt;and where 4 is the first even integer raised to the first even power 2&lt;sup&gt;2&lt;/sup&gt;.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-6963533800556080185?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/6963533800556080185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=6963533800556080185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/6963533800556080185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/6963533800556080185'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/05/new-introduction-to-softwarephysics.html' title='What’s It All About?'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-4293286296793788657</id><published>2011-04-25T17:04:00.001-07:00</published><updated>2011-12-26T06:28:38.435-08:00</updated><title type='text'>Programming Clay</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;The title of this posting is a pun because this is not going to be a posting on the new C-like programming language called Clay, but rather a posting on the origin of life on Earth, and how the recent muddled origin of software and computing hardware might be of help in pointing the way. But before proceeding I must take a moment to commemorate the 70th anniversary of the onset of the Software Universe, which popped into existence some 70 years ago this month in May of 1941 on Konrad Zuse’s Z3 computer (see &lt;a href="http://softwarephysics.blogspot.com/2007/09/so-you-want-to-be-computer-scientist.html"&gt;So You Want To Be A Computer Scientist?&lt;/a&gt; for details).  So the Software Universe is now a whopping 2.2 billion seconds old!  Despite the timestamp on this posting, today’s date is actually May 7, 2011 and not April 25, 2011.  Remember, in order to get the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt; listed as the first post in the context root of &lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt; I have to perform a few IT tricks.  The side effect of all these tricks, as I explained in the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt;, is that the real posting date of posts is the date that appears on the post that you get when clicking on the &lt;font color="blue"&gt;Newer Post&lt;/font&gt; link at the bottom left of each posting.  There is an important lesson here.  Things are not always as they seem in the world of software, or any other form of self-replicating information for that matter, so you should not always take things purely at face value.&lt;br /&gt;&lt;br /&gt;For example, suppose you were a fourteen-year-old high school freshman learning to program Java for the very first time with no historical sense of computing whatsoever.  Having been immersed in the Software Universe for your entire life, you would probably tend to think that all of this sophisticated software and hardware that you had grown up with had simply always existed as it does today.  You would probably not even stop to think about where it all came from as you proceeded to learn how to program the very sophisticated object-oriented language known as Java.  Java comes with a huge class library of pre-built reusable code, graciously passed down from antiquity, that can be called to perform just about any low-level programming function that you might need, with very little effort on your part as a novice programmer, and yields executables that can run on just about any operating system on the planet.  You might also be working on a $500 PC with several GB of memory, a dual-core processor running with a clock speed of several GHz, and more than 1 TB of disk - a machine that is several billion times faster, with several billion times more memory, and nearly a trillion times more peripheral storage than Konrad Zuse’s Z3 computer running on 2400 electromechanical telephone relays and punched tape.&lt;br /&gt;&lt;br /&gt;Now if you did begin to wonder where all of this very sophisticated software and hardware had come from, you would immediately be confronted with a series of “chicken or the egg” paradoxes.  Firstly, you would learn that Java cannot run all by itself directly on a computer.  You cannot simply load a Java executable .class file into the memory of a computer and expect it to do anything at all.  Java needs to run inside of a Java Virtual Machine, which is a simulated software computer that runs on top of the physical computer itself.  Obviously, you cannot write a Java Virtual Machine with the Java language itself, since Java can only run inside of a Java Virtual Machine in the first place, so there must be some “other” programming language that came first before Java that can be used to write software that actually does execute directly upon computers without the need of a Virtual Machine, but what could it be?  If you are lucky, perhaps there are some computer science books in your high school library, and with a little careful detective work on your part you discover a book on the C++ language, which looks a lot like Java, but with many bug-inducing complications, like the overloading of operators, multiple inheritance, and pointers that were later discarded by the Java programming language as a simplifying measure to improve reliability.  Similarly, you might also discover in a textbook that C++ came from the purely procedural C language, which also looks a lot like C++ and Java, but which is 100% procedural and has no object-oriented classes at all.  But you would find that C does have some object-like precursors in the form of unions and functions, which when combined with pointers, can be used to simulate objects to some extent.  So with some investigation you would find an evolutionary history for the Java language if you had access to a library of computer science books, but what would you do if all the computer science books had been destroyed, leaving not a trace, and your PC did not have a C or C++ compiler either?  Would you vainly search for simpler and simpler versions of Java on your PC, with the hope of ultimately finding one that could run directly on your computer without the need of a Java Virtual Machine?&lt;br /&gt;&lt;br /&gt;Similarly, for the hardware that your newly coded Java programs run on, the problem would be even worse, as you quickly figure out that you would need a computer in order to design a computer!  There is no way you could possibly design the silicon chips used for CPUs, RAM, and flash memory without the aid of a computer, and you would also need sophisticated process control computers to run the high-tech equipment that make the chips.  Yes, there are plenty of available silicon atoms to go around, since 27.7% of the Earth’s crust is composed of silicon, but how would you go about taking sand, also known as silicon dioxide, and turn it into computer chips without the aid of computers?  Following my lead in &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt;, you might head out to your local city landfill and begin excavating.  As you dig down through the rubble, you find older and older PCs, which, surprisingly, you find can still be made operational with some work.  As you dig down through the deposited layers of garbage, the PCs you come across are found to contain simpler silicon chips, containing fewer and fewer transistors, until finally in the early 1980s, the trail of PCs grows cold, and no more are to be found at lower depths.  However, you do continue to find the huge refrigerator-like boxes of discarded mainframes at lower depths that were deposited in the 1970s and they contain even simpler silicon chips.  As you dig deeper still, these refrigerator-like boxes are found to stop using silicon chips altogether, and instead are found to be stuffed with discrete silicon transistors on circuit boards.  Finally, in garbage layers from the 1950s you find discarded mainframes stuffed with row upon row of vacuum tubes – things you have never even seen before, but which look a lot like the archaic incandescent light bulbs that your parents grew up with, and which are rapidly being replaced by CFL and LED light bulbs.  The deeper you dig the fewer mainframes you run across, until by the late 1940s, none are found at all in your city landfill, and I am quite confident that you would never run across an old Z3 computer stuffed with electromechanical relays!&lt;br /&gt;&lt;br /&gt;So for both software and hardware, simply taking today’s exceedingly complex high-tech architecture and following it backwards leads you to a series of dead-ends because software did not begin as a simplified version of Java and hardware did not begin running on very simple silicon chips.  Both software and hardware began by using fundamentally different technologies than today’s, and underwent several transitions to get us to where we are today.&lt;br /&gt;&lt;br /&gt;There seems to be a similar “chicken or the egg” problem for the researchers currently working on the origin of another form of self-replicating information – the genes.  The current high-tech biochemistry used today by the biosphere requires enzymes to replicate DNA and to copy mRNA from DNA in order to make enzymes.  So currently, living things need DNA to make enzymes and they need enzymes to make DNA, so which came first, and how could one have come first if both are needed to make the other?  This point is key to unraveling the secret to the origin of life.  As discussed in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, currently there are several competing lines of thought that are all vying to become the accepted theory for the origin of life on Earth.  In that posting I discussed the three major theoretical efforts highlighted by Freeman Dyson in the &lt;em&gt;Origins of Life&lt;/em&gt; (1999):&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;1. Metabolism came first&lt;/strong&gt; - the theory first proposed by Alexander Oparin in &lt;em&gt;The Origin of Life&lt;/em&gt; (1924).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. RNA came first&lt;/strong&gt; - the “RNA world” theory proposed by Manfred Eigen in 1981.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Something else came first&lt;/strong&gt; - such as Alexander Graham Cairns-Smith’s theory, first proposed in 1966, that there was a clay microcrystal precursor to both RNA and metabolism.&lt;br /&gt;&lt;br /&gt;Freeman Dyson liked Cairns-Smith’s idea of a two-stage theory for the origin of life because it eliminated many of the deficiencies found in the “RNA world” theory, such as the “error catastrophe” problem – the fact that the self-replicating processes of the “RNA world” would need to be both very accurate and very simple at the same time.  But Freeman Dyson went on to develop his own two-stage theory for the origin of life using Oparin’s purely metabolic form of life as the initial stage, followed by the parasitic/symbiotic appearance of RNA, which first appears as a disease preying upon the initial metabolic pathways, and later forms a symbiotic relationship with them in the tradition of Lynn Margulis.&lt;br /&gt;&lt;br /&gt;I just finished reading Cairns-Smith’s &lt;em&gt;Seven Clues to the Origin of Life: A Scientific Detective Story&lt;/em&gt; (1985), and I think his idea that Gene 1.0 ran on clay microcrystals instead of nucleic acids needs to be revisited.  There is also an excellent website by Tim Tyler on this subject that I would highly recommend at:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The Origin of Life&lt;/em&gt;&lt;br /&gt;&lt;a href="http://originoflife.net/"&gt;http://originoflife.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One reason that I find Cairns-Smith’s idea that Gene 1.0 ran on clay microcrystals appealing is that, as we have learned from the way that software bootstrapped itself into existence, self-replicating information is notoriously opportunistic and will use just about any technology that is available to self-replicate, and also that self-replicating information really does not care about the underlying technology upon which it runs at any given time.  Stephen Jay Gould coined the term “exaptation” for this tendency of living things to opportunistically take advantage of pre-existing structures and processes for other purposes.  Darwin called such things a preadaptation, but Gould did not like this terminology because it had a teleological sense to it, as if a species could consciously make preparations in advance for a future need. The term exaptation avoids such confusion.  All forms of self-replicating information take advantage of pre-existing technologies, through this process of exaptation, that evolved for one purpose, but are later put to work to solve a completely different problem. As I described in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, what happens is that organisms develop a primitive function for one purpose, through small incremental changes, and then discover, through serendipity, that this new function can also be used for something completely different. This new use will then further evolve via innovation and natural selection. For example, we have all upon occasion used a screwdriver as a wood chisel in a pinch. Sure the screwdriver was meant to turn screws, but it does a much better job at chipping out wood than your fingernails, so in a pinch it will do quite nicely. Now just imagine the Darwinian processes of innovation and natural selection at work selecting for screwdrivers with broader and sharper blades and a butt more suitable for the blows from a hammer, and soon you will find yourself with a good wood chisel. At some distant point in the future, screwdrivers might even disappear for the want of screws, leaving all to wonder how the superbly adapted wood chisels came to be. &lt;br /&gt;&lt;br /&gt;As an IT professional, you probably do this all the time. How often do you write code from scratch? I know that I never do. I simply find the closest piece of existing code that I have on hand and then turn the screwdriver into a wood chisel through small incremental changes to the code, by testing each small change to see how closely my screwdriver has evolved towards becoming a wood chisel. And I think that most of us also code using this Darwinian process of innovation and natural selection too. I am a rather lazy programmer, so many times rather than thinking through a new chunk of code during the iterative process of coding and testing, I will simply make an “educated guess” at the new code to be introduced. After 40 years of coding, you begin to code by “ear”. Many times, I can fall upon the correct code after a few shots of directed random change, and that sure beats racking your brain over new code. Surprisingly, sometimes I even come up with “better” code through this Darwinian process than if I sat down and carefully thought it all through. So the basic idea of grabbing some old code or architectural design elements from a couple of older Applications and slowly modifying them through an iterative process of innovation and natural selection into a new Application is no stranger to IT. As Simon Conway Morris commented in &lt;em&gt;Life’s Solution&lt;/em&gt;  (2003) &lt;br /&gt;&lt;br /&gt;&lt;em&gt;"How much of a complex organism, say a humanoid, has evolved at a much earlier stage, especially in terms of molecular architecture? In other words, how much of us is inherent in a single-celled eukaryote, or even a bacterium? Conversely, we are patently more than microbes, so how many genuinely evolutionary novelties can we identify that make us what we are? It has long been recognized that evolution is a past master at co-option and jury-rigging: redeploying existing structures and cobbling them together in sometimes quite surprising ways. Indeed, in many ways that is evolution”.&lt;/em&gt;  When I first read those words, I accidentally misread the quote as &lt;em&gt;"Indeed, in many ways that is IT”&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Similarly, on the hardware side, in May of 1941 Konrad Zuse exapted 2400 electromechanical telephone relays into creating his Z3 computer.  The telephone relays were not originally designed for this purpose.  Instead, they were designed to be reliable electrical switches that could be used to make or break circuit connections so that people could speak with each other over the telephone.  But Zuse did not use these relay connections for communications.  Instead, he used the fact that a relay could be either in an open or closed state to store a binary digit of  “1” or “0”.  You can read about his adventures in computing in his own words at:    &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Konrad Zuse&lt;/em&gt;&lt;br /&gt;&lt;a href="http://ei.cs.vt.edu/~history/Zuse.html"&gt;http://ei.cs.vt.edu/~history/Zuse.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Konrad Zuse did not use vacuum tubes as switches to store “1&lt;sub&gt;s&lt;/sub&gt;” and “0&lt;sub&gt;s&lt;/sub&gt;” for the Z3 because he thought that it would be impossible to keep thousands of vacuum tubes up and running long enough to complete computations, but in the 1940s and 1950s vacuum tubes were indeed used by all the computers of the age.  However, vacuum tubes were not invented to run computers either.  Vacuum tubes were originally invented to amplify analog radio signals and were exapted by the nascent computing industry into service.  Vacuum tubes have a grid between a hot negative cathode filament and a cold positive anode plate.  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, like a weak 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.  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 do the same thing with vacuum tubes, so that they behave like telephone relays, and can be in a conducting or nonconducting state to store a binary “1” or “0”.  Similarly, when computer hardware migrated to discrete transistors and finally to integrated circuit chips, they once again exapted these devices from the consumer electronics industry.  Like a vacuum tube, a transistor has a gate, source, and a drain, and a varying voltage at the gate can control the current between the source and drain.  Discrete transistors and integrated circuits were not primarily designed for computers, but for other electronic devices, like transistor radios and stereo systems that had a much larger market.  So the computing industry has opportunistically taken advantage of the available information storage and processing hardware ever since its inception.&lt;br /&gt;&lt;br /&gt;Thus it is quite possible that an early form of metabolic self-replicating information, similar to Oparin’s proto-cell, could have opportunistically exapted clay microcrystals to run Gene 1.0 on.  Or perhaps Cairns-Smith is right and clay microcrystals running Gene 1.0 in a free state exapted organic molecules to enhance their ability to self-replicate.  When contemporaneous forms of self-replicating information form parasitic/symbiotic relationships with each other it is hard to say.  For example, software first bootstrapped itself into existence as a form of self-replicating information parasitizing the need for humans to do mathematical operations in an automated manner and quickly went on to form very strong parasitic/symbiotic relationships with nearly every meme-complex on the planet, and it doing so, has domesticated our minds into churning out ever more software of ever more complexity. Just as genes are in a constant battle with other genes for survival, and memes battle other memes for space in human minds, software is also in a constant battle with other forms of software for disk space and memory addresses. Natural selection favors complex software with increased functionality, throughput, and reliability, so software naturally has progressed to greater levels of complexity over time.  As IT professionals, writing and supporting software, and as end-users, installing and using software, we are all essentially temporary software enzymes caught up in a frantic interplay of self-replicating information, until the day comes when software can finally self-replicate on its own.  Cairns-Smith calls the later rise of parasitic/symbiotic RNA the “Genetic Takeover” in &lt;em&gt;Genetic Takeover: And the Mineral Origins of Life&lt;/em&gt; (1982), which describes the rise of Gene 2.0 running on RNA and DNA.&lt;br /&gt;&lt;br /&gt;Crystals are natural products of the second law of thermodynamics.  When individual atoms in a melt come together into a crystalline lattice the entropy of the atoms decreases because they are in a more ordered microstate.  However, the free-wheeling atoms jiggling about in the melt also release a “heat of fusion” into the remaining melt as some of their free energy is given up as they click into place into the lattice, so the entropy of the entire universe still increases.  Similar thermodynamic processes that preserve the second law of thermodynamics also occur when crystals form out of saturated water solutions.  Thanks to the second law of thermodynamics, natural crystals also come with defects caused by atoms in the lattice that are slightly misaligned or by atomic intruders that should not even be in the crystal lattice in the first place.  Thus crystals combine the periodic regularity of self-assembled atoms, modulated by crystal defects, that is perfect for the storage of information.  For me, crystals just seem to be too good of an information storage technology for a metabolic proto-cell to pass by and too easy to exapt into use, but that just might be a symptom of my anthropocentric inclinations as a carbon-based life form.  Perhaps clay microcrystals had the same opinion of organic molecules!&lt;br /&gt;&lt;br /&gt;In fact there is some evidence that points to simple life forms exapting crystals into use.  In 1975 Richard Blakemore discovered magnetotactic bacteria that could sense the Earth’s magnetic field and swim along its field lines.  Magnetotactic bacteria have organelles called magnetosomes that contain magnetic crystals of magnetite (Fe&lt;sub&gt;3&lt;/sub&gt;O&lt;sub&gt;4&lt;/sub&gt;) or greigite (Fe&lt;sub&gt;3&lt;/sub&gt;S&lt;sub&gt;4&lt;/sub&gt;).  The magnetotactic bacteria grow chains of these magnetic particles under the chemical control of the magnetosomes.  These magnetic crystals are between 35 and 120 nm in size, which is just large enough to have a magnetic field, but small enough so that the crystals have a single magnetic dipole domain, like a very small compass needle.  These magnetic crystals allow the bacteria to sense the Earth’s magnetic field and use it to navigate.  It is thought that magnetotactic bacteria first evolved in the early Proterozoic, perhaps 2.5 billion years ago.  I once saw these magnetotactic bacteria in action at the Exploratorium in San Francisco.  The exhibit lets you turn an external magnet, and as you do so, the bacteria swim in a new direction.  Similarly, higher forms of life use biomineralization to grow shells and bones from crystals of calcium carbonate, silica, or phosphate carbonate.  So there has been a long history of association between mineral crystals and living things.&lt;br /&gt;&lt;br /&gt;Personally, my hunch is that life first originated 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 would also be 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.  It is thought that at the time of the late heavy bombardment, that Jupiter and Saturn had entered into a 2:1 orbital resonance, with Saturn making one orbit for every two orbits of Jupiter, and that the two planets had flung a nearby Neptune out to its current orbital position as the most distant planet from the Sun.  Neptune then dislodged many of the surrounding comets from its new-found neighborhood, causing them to plunge in towards the inner planets like the Earth, producing many deadly collisions that boiled away the Earth’s oceans time and time again.  Seeking refuge several thousand feet below the mayhem of the Earth’s surface would allow life to safely originate 4.0 – 4.2 billion years ago during the late heavy bombardment and persist in an undisturbed manner to this very day.  In fact, there are still plenty of microbes down there.  You can actually hire firms to analyze the bacteria in your oil field reservoirs to help prevent them from becoming soured by bacteria that produce hydrogen sulphide gas.&lt;br /&gt;&lt;br /&gt;So will we ever really figure out the exact sequence of events leading up to the origin of life?  As I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2009/04/new-introduction-to-softwarephysics.html"&gt;A Proposal For All Practicing Paleontologists&lt;/a&gt; my suspicion is that there would be a great deal of controversy in simply putting together a non-contentious history for the evolution of software too, with much debate regarding the importance and priority of many of the events in the evolution of software architecture, even with all of the data freely at hand and with most of the events having occurred within living memory, so no wonder biologists working on the origin of life have such a hard go of it!  Similarly, many attempts have been made to produce a timeline for the development of computing hardware.  One of my favorites is:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;An Illustrated History of Computers&lt;/em&gt;&lt;br /&gt;&lt;a href="http://www.computersciencelab.com/ComputerHistory/History.htm"&gt;http://www.computersciencelab.com/ComputerHistory/History.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you look at all of this hardware, it is very difficult to put your finger on a particular device and emphatically claim it to be the very first computer.  For example, was Konrad Zuse’s purely mechanical Z1, completed in 1938 in his parents’ living room, a real computer?  It had a control unit, memory, an arithmetic unit with four basic operations for floating point numbers, input and output devices and it could read programs from a punched tape, but it did not store programs in memory and it did not have a logic unit that could compare bits.  Similarly, I think that it would be very difficult to put your finger on the very first form of life on Earth too.&lt;br /&gt;&lt;br /&gt;Unfortunately, figuring out the exact mechanisms that were involved in the origin of life on Earth will probably never be fully completed.  Like the origin of software and computing hardware, it probably was such a hodge-podge of precursors, false starts, and failed attempts that nobody will ever be able to fully unravel it all.  After all, if we had been there to see it all unfold, we would probably still be debating today what exactly had happened!  But the very muddled origin of software and computing hardware seem to provide a very good model for the origin of all forms of self-replicating information.  The important thing to keep in mind is that self-replicating information is very opportunistic and will exapt whatever information storage technology happens to be handy at the time.  Also, as we have seen from the evolutionary history of software, self-replicating information does not really care about what particular medium or information storage technology it uses at any given moment, since it has a propensity to jump from one technology to another.  For example, software has jumped from purely mechanical information storage devices, to electromechanical relays, vacuum tubes, discrete transistors, integrated circuits and may soon be running on optical chips using quantum mechanical effects to store information.  This would indicate that researchers working on the origin of life should perhaps broaden their horizons and not focus exclusively upon organic molecules as the sole precursors to the origin of life on Earth, and should try giving clay a chance.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-4293286296793788657?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/4293286296793788657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=4293286296793788657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/4293286296793788657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/4293286296793788657'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics_25.html' title='Programming Clay'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-8168615761054462417</id><published>2011-04-15T14:22:00.001-07:00</published><updated>2011-04-27T05:07:24.455-07:00</updated><title type='text'>Is the Universe Fine-Tuned for Self-Replicating Information?</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;This posting will focus on the three forms of self-replicating information on this planet – genes, memes, and software – and the apparent fine-tuning of the Universe to make all three possible.  As we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; all forms of self-replicating information have a commonality of shared properties, resulting from their common struggle with the second law of thermodynamics in a nonlinear Universe, that allow us to learn about one, by examining the others.  As I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2010/05/another-introduction-to-softwarephysics.html"&gt;The Origin of Software the Origin of Life&lt;/a&gt;, success for our current SETS program - the Search for ExtraTerrestrial Software – seems to have a precondition for the emergence of intelligent beings in the Universe to appear first, and to form a scaffolding upon which software can later arise and ultimately begin its exploration of our galaxy.  Since the emergence of intelligent beings is apparently so important for the subsequent emergence of software, let us start there.&lt;br /&gt;&lt;br /&gt;For the current stellar-dominant phase in the evolution of our Universe, this seems to be contingent upon the emergence of intelligent carbon-based life forms, and as many physicists and cosmologists have pointed out, our Universe seems to be indeed strangely fine-tuned for the emergence of carbon-based life forms.  If you change any of the 20+ constants of the Standard Model of particle physics by just a few percent or less, you end up with a universe incapable of sustaining intelligent carbon-based beings. Similarly, in 1969 Robert Dicke noted that the amount of matter and energy in the Universe was very close to the amount required for a flat spacetime to a remarkable degree. If you run today’s near flatness of spacetime back to the time of the Big Bang, spacetime would have had to have been flat to within one part in 10&lt;sup&gt;60&lt;/sup&gt;! This is known as the “flatness problem” in cosmology. If spacetime had just a very slight positive curvature at the time of the Big Bang, then our Universe would have quickly expanded and recollapsed back into a singularity in a very brief period of time and there would not have been enough time to form stars or living things. Similarly, if spacetime had a very slight initial negative curvature, it would have rapidly expanded – our Universe would have essentially blown itself to bits, forming a very thinly populated vacuum which could not have formed stars or living things.&lt;br /&gt;&lt;br /&gt;The apparent fine-tuning of our Universe for intelligent carbon-based life forms is troubling for most theorists because it is difficult to explain.  For the religious at heart the explanation is quite simple – there must be a deity who created the Universe deliberately fine-tuned for intelligent carbon-based life.  But that explanation just pushes the problem back one level because then you have to explain where the deity came from and why a hypothetical super-Universe, beyond our own Universe, was fined-tuned to bring forth such a deity in the first place.  This all goes against the pantheistic grain of many scientists, who have a bit of a spiritualistic bent at heart, and who share the philosophical inclinations of both Spinoza and Einstein.  An alternative explanation that the scientific community seems to be slowly embracing is Brandon Carter’s Anthropic Principle (1973), which comes in several flavors, the least contentious being the weak version of the Anthropic Principle:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Weak Anthropic Principle&lt;/strong&gt; - Intelligent beings will only find themselves existing in universes capable of sustaining intelligent beings.&lt;br /&gt;&lt;br /&gt;At first glance this proposition seems to just state the obvious, but it does have implications.  If we are indeed intelligent beings then our Universe must be fine-tuned to sustain intelligent beings, and that fine-tuning must extend throughout the entire Universe as well, allowing for the emergence of other intelligent beings elsewhere, but why?  The two most common explanations offered for the Weak Anthropic Principle are that either our Universe was intentionally designed with such fine-tuning in mind, or our Universe is just one of many possible universes in a multiverse.  Proponents of the multiverse explanation go on to explain that most universes in the multiverse do not have the necessary physics to sustain intelligent beings and are quite sterile, but like all lottery losers, nobody is in those universes wondering why there is no intelligent life, only the exceedingly rare lottery winners sit in stunned amazement, holding winning tickets to a fine-tuned universe.&lt;br /&gt;&lt;br /&gt;But is it proper to infer an infinite multiverse of universes from the mere fact that we exist?  Fortunately, we have an historical analogy that can shed some light on the subject.  Towards the end of the 16th century, Giordano Bruno took Copernicus’s heliocentric model of the Solar System (1543) one step further.  Giordano Bruno was an early pantheist who conceived of a deity that was one with the Universe, rather than being a deity existing in a remote heaven-based-universe beyond our own physical Universe.  Giordano Bruno thought that such an infinite pantheistic deity must necessarily exist in an infinite Universe, with no beginning and no end, and infinite in both space and time.  Like Copernicus, Bruno believed that the planets orbited the Sun, but additionally, Bruno figured that the stars must simply be distant suns with their own sets of planets, and that these distant planets could also harbor alien life forms and intelligent beings as well.  Clearly, Giordano Bruno was about 400 years ahead of his times, which put him in conflict with many of the prevailing meme-complexes of the day, and sadly, he was burned at the stake by the Roman Inquisition on February 17, 1600.  But the implications of his cosmology are remarkably similar to those of the Weak Anthropic Principle.  Once you posit a Universe containing a near-infinite number of planets, chances are that some of those planets would necessarily be capable of sustaining intelligent carbon-based life forms by sheer luck, and intelligent carbon-based life forms would only find themselves existing on such planets.  This seems to be our current situation here on Earth – we exist on one of the very rare lucky planets in our Universe.  So without even the benefit of the crude telescope that Galileo was about to turn upon the night sky in 1610, Giordano Bruno was able to infer that there must be a large, or near-infinite, number of planets with intelligent beings in our Universe that we cannot see, but must exist, nonetheless, because we exist.&lt;br /&gt;&lt;br /&gt;Another appealing feature of a multiverse, in addition to eliminating the need for our apparently fine-tuned Universe to be intentionally designed, is that it addresses a problem in string theory.  The Standard Model of particle physics was a big improvement over the 400+ unrelated “fundamental” particles discovered in the 1960s, but when you add up all of the various colored particles and their antimatter twins, you end up with about 63 particles (see &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt; for details). Many physicists think that our Universe simply cannot be so complicated, and that there has to be a simpler model. One promising model is called supersymmetric string theory, or string theory for short. String theory contends that all of the particles of the Standard Model are actually strings or membranes vibrating in an 11-dimensional Universe. The strings or membranes are made of pure energy, or perhaps, pure mathematics and vibrate with different frequencies. The different vibrational frequencies account for the differing physical properties of the particles, like the different frequencies of a vibrating guitar string account for the differing notes emanating from a guitar. According to string theory, at the time of the Big Bang, three of the 11 spatial dimensions suddenly began to expand and so did the 4th dimension of time. The remaining 7 dimensions remained microscopically small beyond our ability to observe them. String theory research has dominated physics for the past 20 years, but unfortunately string theory is now running on pure mathematics, without the benefit of the third step in the Scientific Method - experimental verification of the theory using inductive empiricism. Unfortunately, the predicted vibrating strings and membranes are so small that they are far beyond the reach of our current accelerators by many orders of magnitude.  Now the initial hope for string theory was that there would be one, and only one, self-consistent formulation of the theory, and that the Standard Model and its 20+ constants would naturally fall out from it. But that is not what has happened. Over the years, it has become evident that one can form a nearly infinite number of universes with string theory by slightly changing the geometry of the dimensions in which the strings and membranes vibrate. Leonard Susskind calls this &lt;em&gt;The Cosmic Landscape&lt;/em&gt; (2006) in his book by the same title. As do many cosmologists, Susskind proposes that there are an infinite number of other universes forming a multiverse, with each universe having its own physics determined by the number and geometry of its dimensions. &lt;br /&gt;&lt;br /&gt;So nowadays in both physics and cosmology it seems as though there is a lot riding on the Weak Anthropic Principle and its implication that there is a near-infinite multiverse of universes out there, with possibly a near-infinite number of ways of doing physics.  But the Weak Anthropic Principle makes this inference on the basis that the apparent fine-tuning of our Universe for the existence of intelligent beings is exceptional.  But what if that were not the case?  What if the existence of intelligent beings in a Universe, just about any kind of Universe at all, was the rule and not the exception and a relatively easy accomplishment to achieve?  In this posting, I would like to make that very proposition, by introducing the Very Weak Anthropic Principle:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Very Weak Anthropic Principle&lt;/strong&gt; - Intelligent beings will only find themselves existing in a universe capable of sustaining self-replicating information, and self-replicating information will only be found in a universe that begins in a low-entropy initial state.&lt;br /&gt;&lt;br /&gt;To understand the implications of the Very Weak Anthropic Principle, it would be a good time to review the concepts of entropy and the second law of thermodynamics found in &lt;a href="http://softwarephysics.blogspot.com/2007/10/entropy-bane-of-programmers.html"&gt;Entropy - the Bane of Programmers&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt;, and also the role that both played in the evolution of living things and software found in &lt;a href="http://softwarephysics.blogspot.com/2008/06/introduction-to-softwarephysics-ii.html"&gt;SoftwareBiology&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;.  Additional insights can also be found in &lt;em&gt;From Eternity to Here&lt;/em&gt;  (2010) by Sean Carroll, which has the subtitle of &lt;em&gt;The Quest For the Ultimate Theory of Time&lt;/em&gt;, but for our purposes serves as a spectacular study of the second law of thermodynamics and entropy and their far-reaching roles in the evolution of our Universe.  The central aim of this book is to focus attention on why our Universe started out with such a very low entropy at the time of the Big Bang, and that is fundamental to understanding the Very Weak Anthropic Principle, so I will be making quite a few references to it.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2007/10/entropy-bane-of-programmers.html"&gt;Entropy - the Bane of Programmers&lt;/a&gt; we saw that thermodynamics was an outgrowth of the desire by physicists and engineers in the 19th century to better understand and improve upon steam engines.  Thermodynamics describes the behaviors of macroscopic systems, like steam engines, in terms of changes in their macroscopic properties, like changes in their pressures, temperatures, and volumes, as these macroscopic systems operate.  We also explored the second law of thermodynamics, as it was first proposed by Rudolph Clausius in 1850, in terms of objects cooling off and the smoothing out of differences in bulk matter, like the mixing of gasses.  Clausius defined this general running down of systems in terms of a quantity he called entropy, which he defined in terms of the flow of heat from one object to another.  The second law of thermodynamics stated that heat could flow from a hot object to a cooler object, but not the other way around.     In the 19th century, thermodynamics and Newtonian mechanics were considered to be two entirely different domains within physics and unrelated in any way.  Thermodynamics was applicable to the vagaries of steam engines and boilers, while Newtonian mechanics made sense of the planetary motions about the Sun and the flight of cannon balls in time of war.  Furthermore, the second law of thermodynamics was also considered to be a “real” law of the Universe and just as sacrosanct as Newton’s three laws of motion.  However, in &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt; we saw how later in the 19th century Ludwig Boltzmann tried to unify thermodynamics with Newtonian mechanics by creating a new branch of physics known as statistical mechanics.  With statistical mechanics, Boltzmann tried to demonstrate that all of thermodynamics could be derived from Newtonian mechanics by simply considering bulk matter to be composed of a large collection of molecules constantly bouncing around and following Newton’s three laws of motion in collisions at the microscopic level.  One of the difficulties that Boltzmann faced with this new approach to thermodynamics was that now the second law of thermodynamics took on a statistical nature.  The second law was no longer a sacred law of physics, but simply a very good bet.  This bothered many 19th century physicists, who considered the second law of thermodynamics to be just as sacred as Newton’s three laws of motion.&lt;br /&gt;&lt;br /&gt;To highlight Boltzmann’s probabilistic approach to statistical mechanics we explored the concepts of the second law of thermodynamics and entropy in terms of poker.  We equated the different kinds of poker hands with the concept of a macrostate.  For example, a K-K-K-4-4 would constitute the macrostate of a full house.   For any given poker hand, or macrostate, like a full house, there are a number of microstates that yield the macrostate.  So for the macrostate of a full house a K-K-K-4-4, J-J-J-9-9, and a 7-7-7-2-2 would all be microstates of the full house macrostate.  Following the work of Ludwig Boltzmann (1872), we found that for any given poker hand that we could calculate the entropy of the hand, or macrostate, by applying Boltzmann’s famous equation:&lt;br /&gt;&lt;br /&gt;S = k ln(N)&lt;br /&gt;&lt;br /&gt;S = entropy&lt;br /&gt;N = number of microstates&lt;br /&gt;k = Boltzmann’s constant&lt;br /&gt;&lt;br /&gt;For our poker analogy, we set Boltzmann’s constant to k = 1, since k is just a “fudge factor” used to get the units of entropy using Boltzmann’s equation to match those used by the thermodynamic formulas for entropy.&lt;br /&gt;&lt;br /&gt;We also used Leon Brillouin’s concept of information to calculate the amount of information in a particular poker hand, or macrostate, as the difference between its entropy and the maximum possible entropy of all poker hands:&lt;br /&gt;&lt;br /&gt;Information = S&lt;sub&gt;i&lt;/sub&gt; - S&lt;sub&gt;f&lt;/sub&gt;&lt;br /&gt;S&lt;sub&gt;i&lt;/sub&gt; = initial entropy&lt;br /&gt;S&lt;sub&gt;f&lt;/sub&gt; = final entropy&lt;br /&gt;&lt;br /&gt;The entropy of a macrostate defines its degree of disorder and its probability of happening.  Macrostates with little entropy, like a straight flush, have a great deal of order, but are very unlikely because they have so few microstates.  Similarly, macrostates with lots of entropy, like a pair, have little order, but are much more likely to occur  because they have a huge number of possible microstates.  At any given time a system, like the cards you are currently holding in a poker game, will be in some macrostate defined by a particular microstate.  So let’s say that you are holding the macrostate of a full house defined by a microstate of Q-Q-Q-7-7.   From the table in &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt;, we see that a full house has an entropy of 8.2279098 and a probability of occurring of 0.00144.  Now I am going to change the rules of poker again.  When it comes time to draw cards, you can draw one, two, or three cards, but not only does the dealer deal you the new cards, he also chooses the cards that you discard!  So you put all five cards face down on the table, tell the dealer how many cards you wish to draw, and then the dealer deals out your draw cards and discards an equal number of cards from your hand at random.  So what do you do?  From the table in &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt;, we see that your full house macrostate with a microstate of Q-Q-Q-7-7 already has a relatively low entropy and a low probability of occurring.  The odds are that if you draw even a single card that the entropy of your hand will increase, and you will end up with a lower ranked hand, like two pair or three of a kind.  Of course, you could get really lucky and draw another Q, while the dealer discards one of your 7s, but that would be a real long shot.  This, then, is the essence of the second law of thermodynamics in Boltzmann’s statistical mechanics.  Systems tend to increase in entropy, not because of some fundamental law of the Universe, but simply because high-entropy macrostates (low-ranked poker hands) with lots of microstates are much more likely to occur than low-entropy macrostates (high-ranked poker hands) with few microstates.  In simple terms, you are more likely to be dealt a pair than a straight flush simply because there are more ways to be dealt a pair than to be dealt a straight flush.  Thus in Boltzmann’s view, the second law of thermodynamics reduces to just being a really safe bet that entropy will increase and not a fundamental law that it always must.  So in Boltzmann’s view, in very rare cases, the entropy of an isolated system can spontaneously decrease all on its own, in apparent violation of the second law of thermodynamics.&lt;br /&gt;&lt;br /&gt;The beauty of Boltzmann’s statistical approach to the second law of thermodynamics is that it is the only “law” in physics that we really understand at a fundamental level because it really is not a “law” at all in the same sense as the other “laws” of classical 19th century physics, which by definition could not be violated.  Recall that in the 20th century we learned that all of the other “laws” of the Universe are really just effective theories in physics that are approximations of reality.  An effective theory 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 works very well for objects moving in weak gravitational fields at less than 10% of the speed of light and which are larger than a very small mote of dust. For things moving at high velocities, or in strong gravitational fields, we must use relativity theory, and for very small things like atoms, we must use quantum mechanics. All of the current theories of physics, such as Newtonian mechanics, classical electrodynamics, thermodynamics, the special and general theories of relativity, quantum mechanics, and quantum field theories like QED and QCD are just effective theories that are based upon models of reality, and all of these models are approximations – all of 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 (see &lt;a href="http://softwarephysics.blogspot.com/2011/01/new-introduction-to-softwarephysics.html"&gt;Model-Dependent Realism - A Positivistic Approach to Realism&lt;/a&gt; for more details).&lt;br /&gt;&lt;br /&gt;Boltzmann’s new statistical concept of the second law of thermodynamics also addressed a bothersome problem for 19th century astronomy.  At the time, physicists and astronomers thought that the Universe was infinitely old.  In those early days, nobody really knew what was powering the Universe, but they did realize that the Universe was a dynamical system degrading some kind of low-entropy potential energy into the high-entropy energy of heat that was constantly moving to lower temperatures because of the second law of thermodynamics.  For example, nobody knew what was powering the Sun, but they did know that the Sun was giving off huge amounts of electromagnetic energy in the form of sunlight.  When the sunlight reached the Earth and was absorbed, it heated up both the land and sea, which then radiated infrared electromagnetic energy back into space with a longer wavelength and a greater entropy.  At each step in the process, the first law of thermodynamics guaranteed that all of the energy was conserved, none of it was lost and no additional energy spontaneously appeared on its own.  But at the same time, the second law of thermodynamics demanded that the entropy of the energy had to increase at each step, and when 19th century physicists performed experiments that simulated these processes in the lab that is indeed what they found.  So if the Universe were infinitely old, then according to the second law of thermodynamics, all of the energy in the Universe should have already been converted into heat energy at a very low constant temperature, and the Universe should be in a state of an unchanging equilibrium, with a maximum of entropy.  In classical 19th century thermodynamics, once an isolated system has attained a state of maximum entropy, it can no longer change and is essentially dead, and in the 19th century this was known as the “Heat Death” of the Universe.  To address this issue Boltzmann came up with his own version of the Weak Anthropic Principle.  Since intelligent beings could not possibly exist in an unchanging Universe at equilibrium and in a state of maximum entropy, we must obviously be living in a very strange and fluky tiny portion of a much larger Universe.  Most of the Universe would indeed be in equilibrium, at a maximum entropy, and in a “Heat Death” condition, but our little portion of the Universe must be a statistical fluke, at a much lower entropy, that spontaneously came to be out of the random motions of molecules in our patch of the Universe.  It would be like the spontaneous unmixing of two gasses that the second law of thermodynamics forbids, but on a much grander scale.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yPSJ2-AOMFU/Rz45rEhPvPI/AAAAAAAAABo/z36_SAMaiH4/s1600-h/unmixed.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_yPSJ2-AOMFU/Rz45rEhPvPI/AAAAAAAAABo/z36_SAMaiH4/s320/unmixed.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5133604037359287538" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – The second law of thermodynamics predicts that two unmixed gases will mix into an unchanging homogeneous mixture at equilibrium with a maximum of entropy (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_yPSJ2-AOMFU/Rz467khPvRI/AAAAAAAAAB4/YMvkALTRDWs/s1600-h/mixed.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_yPSJ2-AOMFU/Rz467khPvRI/AAAAAAAAAB4/YMvkALTRDWs/s320/mixed.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5133605420338756882" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 2 – Once a state of maximum entropy has been attained the mixture will no longer change as it enters a “Heat Death” macroscopic condition (click to enlarge)&lt;br /&gt;&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yPSJ2-AOMFU/Rz45rEhPvPI/AAAAAAAAABo/z36_SAMaiH4/s1600-h/unmixed.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_yPSJ2-AOMFU/Rz45rEhPvPI/AAAAAAAAABo/z36_SAMaiH4/s320/unmixed.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5133604037359287538" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 3 – But Boltzmann’s new statistical view of the second law of thermodynamics does allow a mixed gas to spontaneously unmix on very rare occasions (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;Although the classical second law of thermodynamics forbids such processes, in Boltzmann’s new statistical view of the second law of thermodynamics, it is very unlikely, but still possible, for a tiny patch of an infinitely large and infinitely old Universe to spontaneously evolve into a low-entropy state such as ours.  It would be like starting off with a poker hand of “nothing” with an entropy of 14.7706235 and after drawing three cards ending up with a royal flush with an entropy of 1.3862944.  It would take a very long time to be so fortunate, but if the Universe were infinitely old, there would be plenty of time for it to have happened, and for it to have happened an infinite number of times in the past.&lt;br /&gt;&lt;br /&gt;Now with all that background material behind us, what does it take for self-replicating information to arise?  I would like to argue that it does not take that much at all.  All it requires is the existence of a second law of thermodynamics and a low-entropy initial state for a universe to bring forth self-replicating information in some fashion.  A second law of thermodynamics is necessary for the emergence of self-replicating information because the second law is the driving force behind the Darwinian mechanisms of innovation and natural selection that select for self-replicating information from information that does not self-replicate and allow it to emerge and evolve.  The second law guarantees that some level of copying errors will occur whenever self-replicating information replicates, resulting in mutations that, on rare occasions, provide for beneficial innovations.  The second law also guarantees that the low-entropy materials used to encode self-replicating information and the free energy necessary to replicate it, will be in short supply, since the necessary building materials will have a tendency to degrade into high-entropy waste materials, and the free energy will tend to degrade into useless heat energy.  The scarcity of these items creates a struggle for existence amongst the competing forms of self-replicating information, leading to the Darwinian mechanism of natural selection.  After all, if it had not been for the second law of thermodynamics, and food and shelter spontaneously emerged out of nothing, we would all be fat and happy bacteria today!  Finally, because there will always be more microstates for a disordered high-entropy macrostate, than there are microstates for an ordered low-entropy macrostate, in all possible universes, all universes must necessarily have a second law of thermodynamics, no matter what physics they might be running on at the moment.  It’s just in the cards that all possible universes must have a second law of thermodynamics.  Consequently, all that is really needed for the existence of intelligent beings is for a universe to begin in an initial state of low entropy.&lt;br /&gt;&lt;br /&gt;Now it looks like we have nearly finished our derivation of the Very Weak Anthropic Principle.  Since all possible universes must contain a second law of thermodynamics, all we have to do is explain why our Universe began in a low-entropy state.  Frequently in textbooks on thermodynamics it is inferred that since our Universe is currently not in a state of maximum entropy, it must have been in a state of much lower entropy in the distant past because entropy always has to increase with time.  In &lt;em&gt;From Eternity to Here&lt;/em&gt; Sean Carroll points out that this is not necessarily true.  It all has to do with the conservation of information and reversible processes.  This time I am not talking about Leon Brillouin’s concept of information as a difference in entropies, but rather the “other” concept of information that I mentioned in &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt; in regards to black holes conserving information.  A reversible process is a process that can be run backwards in time to return the Universe back to the state that it had before the process even began, as if the process had never even happened in the first place.  For example, the collision between two molecules at low energy is a reversible process that can be run backwards in time to return the Universe to its original state because Newton’s laws of motion are reversible.  Knowing the position of each molecule at any given time and also its momentum, a combination of its speed, direction, and mass, we can predict where each molecule will go after a collision between the two, and also where each molecule came from before the collision using Newton’s laws of motion.  For a reversible process such as this, the information required to return a system back to its initial state cannot be destroyed, no matter how many collisions might occur, in order to be classified as a reversible process that is operating under reversible physical laws.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-u9ncQgFBxT4/TbYOa29ay4I/AAAAAAAAAQw/dmE3lvlCydo/s1600/CollidingBalls.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 193px; height: 261px;" src="http://2.bp.blogspot.com/-u9ncQgFBxT4/TbYOa29ay4I/AAAAAAAAAQw/dmE3lvlCydo/s400/CollidingBalls.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5599679041274301314" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 4 – The collision between two molecules at low energy is a reversible process because Newton’s laws of motion are reversible (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;Currently, all of the effective theories of physics, what many people call the “laws” of the Universe, are indeed reversible, except for the second law of thermodynamics, but that is because, as we saw above, the second law is really not a fundamental “law” of the Universe at all.  In order for a law of the Universe to be reversible it must conserve information.  That means that two different initial microstates cannot evolve into the same microstate at a later time.  For example, in the collision between the blue and pink molecules in Figure 4, the blue and pink molecules both begin with some particular position and momentum one second before the collision and end up with different positions and momenta at one second after the collision.  In order for the process to be reversible and Newton’s laws of motion to be reversible too, this has to be unique.  A different set of identical blue and pink molecules starting out with different positions and momenta one second before the collision could not end up with the same positions and momenta one second after the collision as the first set of blue and pink molecules.  If that were to happen, then one second after the collision, we would not be able to tell what the original positions and momenta of the two molecules were one second before the collision, since there would now be two possible alternatives, and we would not be able to uniquely reverse the collision.  We would not know which set of positions and momenta the blue and pink molecules originally had one second before the collision, and the information required to reverse the collision would be destroyed.&lt;br /&gt;&lt;br /&gt;Now suppose you find yourself in a universe that looks like Figure 3 and has a relatively low-entropy microstate relative to the maximum entropy of Figure 2.  How did you get that way?  At first, you might think that you got that way by evolving from a universe with an even lower entropy, like one that had all of the molecules tightly confined to a corner in each half of the two boxes.  But that would not be very likely.  The most likely thing to have occurred is that you started out in a universe like Figure 2!  To get to a universe like Figure 3, all you have to do is reverse the speed and direction of each molecule in Figure 2, and you end up with a universe like Figure 3, because the universe in Figure 2 evolved from the universe in Figure 1 in the first place.  Since there will be a huge number of configurations like Figure 2, relative to the number of configurations with all of the molecules in each  box neatly packed into corners, the most likely way of getting to Figure 3 is from a much higher entropy Figure 2.  So if you find yourself in a relatively low-entropy universe such as ours, you cannot simply use the second law of thermodynamics to infer that your universe started out as an even lower entropy universe in the distant past. Instead, you have to make what Sean Carroll calls the Past Hypothesis, that for some reason, your universe started out in an initial state with a very low entropy in the first place.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;From Eternity to Here&lt;/em&gt; Sean Carroll goes on to offer several explanations for the Past Hypothesis of why our Universe began with a very low initial entropy.  The one that he finally homes in on, and which I find quite appealing, is a model composed of a multiverse of self-replicating baby universes.  Sean Carroll explains that under the relentless pressures of the second law of thermodynamics to constantly increase the entropy of a universe, a universe in a multiverse ultimately degenerates into a state where everything is confined to a large number of black holes.  Such a universe filled with black holes ultimately degenerates, via Hawking radiation, into a nearly empty universe with a small amount of positive vacuum energy and a maximum of entropy.  This takes a long time - about 10&lt;sup&gt;100&lt;/sup&gt; years.  Another good book that also describes this degenerative process is &lt;em&gt;The Five Ages of the Universe&lt;/em&gt; (1999) by Fred Adams and Greg Laughlin.  Then the universe must wait for a very very long time.  After a seeming eternity of time, a quantum fluctuation in the very dilute remaining quantum fields of the universe suddenly creates a tiny pinch of “false vacuum” in the universe (see &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt; for details on quantum field theory).  Most times this pinch of “false vacuum” simply collapses back into the dilute fluctuating quantum fields of the universe, but upon exceedingly rare occasions, this region of  “false vacuum” pinches off into a new baby universe.  The new baby universe then inflates into a full-blown universe, such as ours, that is essentially made out of “nothing”, with no net energy, momentum, or angular momentum, but it does have an initial state with a very low entropy.  Energy is conserved because the energy of the radiation and matter that form as the “false vacuum” of the baby universe decays while inflating, is exactly matched by the negative gravitational potential energy that arises due to the presence of the matter and radiation in the baby universe.  The initial entropy of the baby universe starts out very low, but this is not a violation of the second law of thermodynamics because the entropy of its maternal universe is still at a maximum, and the entropy of the multiverse as a whole does not decrease with the addition of a new low-entropy baby universe.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-FHLxxsWHN2w/TbYPWhsvOlI/AAAAAAAAAQ4/ZPUNb4-pE80/s1600/BabyUniverse.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 159px; height: 400px;" src="http://2.bp.blogspot.com/-FHLxxsWHN2w/TbYPWhsvOlI/AAAAAAAAAQ4/ZPUNb4-pE80/s400/BabyUniverse.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5599680066359343698" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 5 – A low-entropy baby universe can emerge from a quantum fluctuation in the residual quantum fields of a relatively dead universe that has reached a state of maximum entropy(click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;So in Sean Carroll’s model of the multiverse we find an infinite number of universes constantly spawning new universes, as each universe relentlessly progresses to a state of maximum entropy under the pressures of the second law of thermodynamics.  A baby universe may inherit its physics from its maternal universe, or it might branch out on its own with a new set of physical laws, but thanks to the ubiquitous nature of the second law of thermodynamics, the end result will always be the same, a universe at maximum entropy spawning additional child universes with low entropy.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-8VVhdXpEbBI/TbYQgi_45nI/AAAAAAAAARA/uZZVHSsSCKw/s1600/BubbleUniverses.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 235px;" src="http://3.bp.blogspot.com/-8VVhdXpEbBI/TbYQgi_45nI/AAAAAAAAARA/uZZVHSsSCKw/s400/BubbleUniverses.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5599681338018424434" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 6 – The multiverse is composed of an infinite number of universes that are constantly replicating as they reach a state of maximum entropy under the pressures of the second law of thermodynamics (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;For me such a self-replicating multiverse has an almost fractal nature at heart, like the Mendelbrot set that is defined by a simple recursive algorithm in the complex plane:&lt;br /&gt;&lt;br /&gt;Z&lt;sub&gt;n+1&lt;/sub&gt;=Z&lt;sub&gt;n&lt;/sub&gt;*Z&lt;sub&gt;n&lt;/sub&gt; + C&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-6gr-MLkZBa0/TbYRSA3Dn1I/AAAAAAAAARI/IbCW0AV9kaE/s1600/Fractal.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-6gr-MLkZBa0/TbYRSA3Dn1I/AAAAAAAAARI/IbCW0AV9kaE/s400/Fractal.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5599682187848032082" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 7 – The multiverse can be thought of as a fractal form of self-replicating information, like the Mendelbrot set, with no beginning and no end (click to enlarge)&lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;Now to get back to the original question posed by this posting - is the Universe fine-tuned for self-replicating information?  In many ways the multiverse described by Sean Carroll is indeed fine-tuned for self-replicating information because it essentially is a form of self-replicating information in itself.  On the other hand, because his model also explains why all universes begin with a very low level of entropy, it also explains the Very Weak Anthropic Principle, and if the Very Weak Anthropic Principle is true, then the requirements for the fine-tuning of a universe are greatly relaxed, and the presence of intelligent beings in a universe is not such a discriminating factor.  What &lt;em&gt;is&lt;/em&gt; discriminating is the requirement that there be a fine-tuning selection process that starts universes off with a low initial entropy.  This relieves some of the anthropocentric tension found in the other forms of the Anthropic Principle because human beings can no longer be accused of following their natural tendency to gravitate towards the center of the Universe.  Just about any universe will do for intelligent beings to arise and ultimately initiate the emergence of software, and provide a scaffolding upon which software can later proliferate, until the day comes when software can finally self-replicate on its own. &lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-8168615761054462417?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/8168615761054462417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=8168615761054462417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/8168615761054462417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/8168615761054462417'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/04/new-introduction-to-softwarephysics.html' title='Is the Universe Fine-Tuned for Self-Replicating Information?'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yPSJ2-AOMFU/Rz45rEhPvPI/AAAAAAAAABo/z36_SAMaiH4/s72-c/unmixed.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-2448903688356560603</id><published>2011-03-16T17:51:00.001-07:00</published><updated>2011-04-19T06:21:47.780-07:00</updated><title type='text'>Can Your Website Think?</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;One of the propositions of softwarephysics is that there are currently 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.  As outlined in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt;, all forms of self-replicating information have a commonality of shared properties that allow us to learn about one by examining the others.  Over billions of years the genes have learned to create conscious beings through the Darwinian mechanisms of innovation and natural selection.  The genes certainly did not plan on this happening, since genes are just mindless forms of self-replicating information, but it happened just the same in a purely mechanistic manner as huge neural networks developed in complex multicellular organisms such as ours.  So the question becomes did the same thing happen for the memes and might it happen for software as well?  Meme-complexes do seem to have a mind of their own as they respond to changes in the Zeitgeist of the times, but since memes are forms of self-replicating information that only exist in the minds of DNA survival machines to begin with, the analogy does not easily carry forward in an unambiguous manner for software, so let us focus our attention on the consciousness of the DNA survival machines that the genes have brought forth, and to see if it can be extended to software as well.&lt;br /&gt;&lt;br /&gt;The problem of what constitutes a conscious sentient being has been troubling philosophers, theologians, and scientists from the very beginning, and has not been satisfactorily explained by any of them.  Fortunately, the extreme difficulty of the subject matter seems to stimulate the field in many disciplines.  Some philosophers and many researchers working on AI (Artificial Intelligence) adopt a positivistic approach to the subject in that they don’t care what consciousness “really is”; they only care about how conscious beings are observed to behave.  For AI an important advance along these lines came about with Alan Turing’s paper &lt;em&gt;Computing Machinery and Intelligence&lt;/em&gt; (1950) in which he proposed his famous test.  In this paper Turing proposed having a judge ask questions of a conscious human being and a computer via two terminals.  If the judge could not tell the difference between the human being and the computer from her interactions with both, then the computer would pass the Turing test for intelligence.  A few months ago we saw IBM’s Watson supercomputer trounce his human opponents on &lt;em&gt;Jeopardy&lt;/em&gt; using massively parallel processing software running on a cluster of 90 IBM Power 750 servers with a total of 2880 POWER7 processor cores and 16 Terabytes of memory.  It could be argued that Watson failed the Turing test, not because he could not keep pace with his human opponents, but because nobody could possibly be that good at &lt;em&gt;Jeopardy&lt;/em&gt;!  Or perhaps Watson passed the Turing test, while his human opponents failed it.  Anyway, it was quite fascinating to see such impressive levels of AI in action.  In a similar manner, GPS units seem to have reached a level of AI far superior to human navigators.  My GPS unit speaks to me and tells me exactly what I need to know without me even looking at the device, which is far superior to the directions you would obtain by stopping at a local gas station, even if you could persuade the reluctant attendant to come along for the ride.  This AI behavior is especially handy when I decide to wander off the route planned by my GPS unit or I miss a turn.  It patiently recomputes the best way to get me back on track to my destination.  Once I was driving in downtown Chicago, and because of some local construction, a one-way street had been temporarily turned into a two-way street.  As I proceeded to drive the “wrong” way down the one-way street, my GPS unit gently reminded me to please turn around as soon as possible, but when I did not, it finally just told me in disgust to make the proper turn when I reached my final destination.  As I was driving the “wrong” way down the one-way street, I just had to wonder what my GPS unit was “thinking”.  I was afraid that my GPS unit was thinking that this nut is going to get us both killed if he does not quickly turn around!&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;Kinds of Minds&lt;/em&gt; (1996) Daniel Dennett extends some of the ideas found in his earlier work &lt;em&gt;Darwin’s Dangerous Idea&lt;/em&gt; (1995) to explain how intelligent consciousness could have evolved from simple neural networks.  He explains how sensation, the ability to respond to stimulation in a mindless sort of way, like your home thermostat, could evolve into sentience through the step-by-step Darwinian processes of innovation and natural selection.  To explain this process, Dennett uses one of his favorite intellectual devices – the Intentional Stance.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Here is how it works: first you decide to treat the object whose behavior is to be predicted as a rational agent; then you figure out what beliefs that agent ought to have, given its place in the world and its purpose. Then you figure out what desires it ought to have, on the same considerations, and finally you predict that this rational agent will act to further its goals in the light of its beliefs. A little practical reasoning from the chosen set of beliefs and desires will in most instances yield a decision about what the agent ought to do; that is what you predict the agent will do. &lt;/em&gt; (Daniel Dennett, The Intentional Stance, p. 17)&lt;br /&gt;&lt;br /&gt;At a very early age we all learned to adopt an Intentional Stance when dealing with our fellow human beings, like our parents and other care givers.  We learned that human beings seemed to operate in a different manner than our blankets and teddy bears.  Human beings behaved as if they could “think” and acted as rational agents with their own sets of beliefs and goals.  For Dennett, adopting an Intentional Stance towards an external entity is one of the significant landmarks along the road from sensation to sentience.  End-users of a modern-day websites certainly adopt an Intentional Stance towards websites.  Not only does the website respond to requests by the end-user, it also seems to have its own beliefs, goals, and desires.  Many times the website will try to up-sell or cross-sell the end-user with products or services, or entice the end-user with a special offer to go to paperless billing.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;Kinds of Minds&lt;/em&gt;, Dennett also explains that another landmark along the road to consciousness is the ability for an agent to spread its mind out into the world by leaving behind cues and reminders in the environment to help it achieve its goals.  This can be found in the lowly ant that leaves behind a pheromone trail on the surface of the soil that can be later followed by the ant or other ants to a source of food, all the way up to human beings who have a multitude of Good Tricks, including language and the written word to leave behind cultural artifacts in the environment that can be later used by our minds or the minds of others.  Dennett explains:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;We Gregorian creatures are the beneficiaries of literally thousands of ... useful technologies, invented by others in the dim recesses of history or prehistory but transmitted via cultural highways, not via the genetic pathways of inheritance. We learn, thanks to this cultural heritage, how to spread our minds out in the world, where we can put our beautifully designed innate tracking and pattern-recognizing talents to optimal use.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Websites do the same thing with cookies.  Cookies come in many flavors and are used to do things such as “maintain state” and “personalize” the website experience for end-users.  Since the HTTP protocol does not maintain state between one page request and the next, a website must keep track of end-users between requests as if they were in a dedicated session, like somebody on a very long phone call, with a continuous give and take between the end-user and the website.  In reality, the HTTP protocol essentially behaves like a series of disconnected phone calls, but through the magic of cookies, it is possible to maintain state and trick the end-user into believing that they are actually having a dedicated conversation with the website.  For example, the end-user’s browser might first make a phone call to the website requesting the HTML for a particular webpage and then all of the necessary files like the .jpg and .gif files that form the images on the webpage and little JavaScript programs that are required for the HTML to render properly.  The end-user’s browser then hangs up while the website server responds to all of these requests.  For the next webpage that the end-user requires, the end-user’s browser once again makes another phone call to the website server for another HTML page and all of its associated files.  As you can see, if the website is trying to help the end-user fill a shopping cart and place an order, there must be some mechanism to keep track of the thousands of concurrent end-users who are simultaneously making such requests.  This is accomplished by dropping a session cookie on the end-user’s browser.  The session cookie identifies the end-user for the duration of the total transaction, which might require many webpages to accomplish.  Session cookies are short-lived cookies that usually disappear when you close your browser or timeout after a few minutes of inactivity on your part.  Tracking or persistent cookies, on the other hand, last much longer and are used to identify end-users from session to session so that the website experience can be customized for the end-user.  For example, you might use a weather website that remembers your home town and how you like your home page laid out when you login, and so the weather website automatically displays the forecast for your home town in the manner you like when you login to the website.  This is accomplished by dropping a persistent cookie on your browser.  So websites do not actually “remember” you, instead they distribute their “minds” out upon the end-user community by dropping cookies on individual browsers.  Unfortunately, tracking cookies can also be used by spyware and other forms of malware to monitor your Internet activities.  Your virus and malware protection software can be used to help identify such cookies, and is again an example of the need to adopt an Intentional Stance when dealing with software that really does have a set of beliefs, goals, and desires that are not in your best interest.  So websites do indeed respond to stimulation, behave in a manner worthy of the Intentional Stance, and do spread their “minds” out into cyberspacetime.&lt;br /&gt;&lt;br /&gt;Now if end-users can think of websites as “thinking” agents, it is even more true for the IT professionals who create and maintain them.  As a member of the Middleware Operations group for my current employer, I constantly find myself adopting the Intentional Stance when dealing with the software that I support.  For example, last week I got pulled into an install that was not going very well.  Our MidOps Offshore group in Bangalore India was having problems installing a very large Websphere .ear file.  For J2EE Appservers like Websphere, .ear files are used to install Applications into a particular Websphere JVM that then create dynamic HTML for a particular website.  Because this was a foreign website which had already seen the Sun set for the day and most of its end-user community depart, its maintenance window just happened to include a Friday afternoon for me, and I had a ton of last-minute change tickets for the weekend to proofread and approve.  Frantic programmers were calling my IP phone, leaving messages that I could not listen to, and popping instant messaging sessions on me while I was desperately trying to troubleshoot the install problem.  The root cause of the problem was that the filesystem that Websphere was trying to deploy the .ear file to ran out of disk space, a very unusual problem since this critical filesystem for Websphere is normally sized with quite a bit of extra disk to avoid such problems.  But this time it was not.  This was further complicated by the fact that this was a low-usage website that had the Websphere Deployment Manager and a Websphere Cell with a single node all running on the same server, an unusual affair for most of the Websphere applications that MidOps supports.  By the time I joined the call, there were apparently several residual orphan Unix processes from previous install attempts trying to write to the filesystem.  At one time the Unix df command showed the filesystem at 100% disk, so I deleted out some old .ear files to make room, but unknown to me, other orphans must have been still trying to write to the filesystem and maxing it out.  This resulted in numerous strange and aberrant behaviors by the Websphere Console.  At first when I tried to login to the Websphere Console, I got the login page OK, but when I actually tried to login, I got an HTTP 500 error.  I restarted the Websphere Deployment Manager a couple of times, but that did not help.  What was happening was that the Deployment Manager was running OK, but it could not log my login attempt to the Websphere Console because the filesystem was at 100% disk utilization at the time.  Deleting some old .ear files freed up some disk space and fixed the problem so that I could at least login to the Websphere Console.  But when I tried to install the big .ear file, the Websphere Console lied to me and told me that the .ear file was not a proper .ear file and might be corrupt!  That’s when it was noted that the filesystem had gone to 100% disk utilization again.  This time UnixOps was engaged to increase the filesystem to 1 GB, and after that the .ear file installed properly, or at least it seemed so at first.  But it turned out later that the Websphere Deployment Manager was out of sync with the Websphere node because of the filesystem going to 100% disk utilization, so the new .ear file had not been properly deployed.  Resyncing the Websphere Deployment Manager with the Websphere node finally fixed the problem.&lt;br /&gt;&lt;br /&gt;All during this install turmoil I kept thinking of the Websphere Deployment Manager and Websphere node as an unruly child pulling a tantrum in a grocery store checkout line just to get its way.  I kept thinking to myself, “What is wrong with you? Why are you behaving in such a bratty manner?  Did I do something wrong?  What do you really want?  What will it take to make you stop acting like this?”.  This was a rather embarrassing moment, as all parents can attest to, because there were several other people on the install call listening to me trying to discipline my unruly child, all with the smug attitude that bystanders in such situations are infamous for.  At one point I even threatened to reboot the Websphere server, the hollow threat that all IT professionals resort to, but infrequently follow through upon, but even that threat did not scare Websphere into submission!  I am sure that this scenario is quite familiar to all IT professionals, and that we all routinely adopt an Intentional Stance towards the software that we create and support, and assign to it a personality of its own that we frequently try to bargain with in a vain attempt to get it to behave properly.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-2448903688356560603?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/2448903688356560603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=2448903688356560603' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2448903688356560603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2448903688356560603'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/03/new-introduction-to-softwarephysics.html' title='Can Your Website Think?'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-7154089922023120994</id><published>2011-02-15T15:01:00.000-08:00</published><updated>2011-03-17T06:15:40.095-07:00</updated><title type='text'>Cyber Defense</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished &lt;em&gt;Cyber War&lt;/em&gt; (2010) by Richard Clarke, which I would strongly recommend for all IT professionals.  Richard Clarke is most famous for being the counter-terrorism expert whose valiant efforts to warn the Bush Administration of the impending al-Qaeda attack upon the United States by Osama bin Laden went tragically unheeded, as outlined in his book &lt;em&gt;Against All Enemies: Inside America's War on Terror—What Really Happened&lt;/em&gt; (2004).  Richard Clarke is one of those forward thinking individuals rarely found in human history.  As demonstrated by the court-martial of Billy Mitchell in 1925 for his vociferous promotion of naval airpower in the face of a military high command seemingly obsessed with fighting the last war again, and consequently, in love with the gigantic battleships of the day that later never played a significant role in World War II, these rare individuals always seem to suffer the fate of Cassandra, who was given the gift of prophesy by Apollo, but also the curse that nobody would ever believe her.  This time Richard Clarke is describing the dangers of conducting cyber war in cyberspacetime, and this time we need to listen to him before his prophesies come true, rather than after.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Threat of Cyber War&lt;/strong&gt;&lt;br /&gt;For me there is a personal reason for taking Richard Clarke’s warnings seriously.  On the morning of September 11, 2001 I was working in the IT department of United Airlines supporting their Customer Interaction Database (CIDB), which was a large Oracle database of customer information fronted by a collection of Tuxedo services.  I was in the group that supported the Tuxedo service middleware of the CIDB.  Our initial client was the J2EE Weblogic Appservers used to run the &lt;a href="http://www.united.com/"&gt;www.united.com&lt;/a&gt; website.  That morning, I was coming back from a walkthrough with Change Management for a large install planned for the coming weekend.  When I returned to my cube, I heard some co-workers talking about an airplane crashing into one of the twin towers of the World Trade Center.  I was concentrating on the upcoming install, and did not pay much attention at the time because I thought it must have been a small private aircraft.  Only later did I learn that it really was American Airlines Flight 11 that had crashed into the north tower at 8:46 AM ET.  Seventeen minutes later the second tower was hit by our United Airlines Flight 175 at 9:03 AM ET.  Then American Airlines Flight 77 crashed into the Pentagon at 9:37 AM ET and United Airlines Flight 93 went down in Shanksville Pennsylvania at 10:03 AM ET.  A little later that morning I was in a preparation meeting planning for the upcoming weekend install when our manager walked into the room and told us that both towers of the World Trade Center had collapsed and that all scheduled installs had been cancelled by our CIO.  For the first time in history, all domestic flights were grounded and international flights were turned back.  United Airlines lost about $700 million the first week after the attack, and within about two weeks about half of United’s IT department was laid off.  I was one of the survivors, since the CIDB was critical to keeping &lt;a href="http://www.united.com/"&gt;www.united.com&lt;/a&gt; up and running.  The FBI took up residency in a war room down the hall from me.  Over the next few months, I ran SQL queries against the CIDB database to help try to figure out what had happened.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cyber-Attacks Are Already Happening&lt;/strong&gt;&lt;br /&gt;Clarke opens with a description of the September 6, 2007 destruction of a secret Syrian nuclear facility designed and constructed by the North Koreans.  The Israeli Air Force destroyed the site with F-15 Eagles and F-16 Falcons attacking from the airspace of Turkey.  This was a fairly typical event in the real world of human affairs, but there was one very unusual aspect to the attack.  The Syrians had spent several billion dollars on a Russian air defense system, and the 1970s era F-15s and F-16s should have lit up the Syrian air defense radar screens like the Big Board in the War Room of &lt;em&gt;Dr. Strangelove&lt;/em&gt; (1964), but they did not.  That night the Syrian air defense system simply showed normal air traffic over Syria as the Israeli Air Force obliterated the site.  Over time, the Syrians slowly realized that the Israelis had hacked their billion dollar air defense system!  So what the Syrians saw on the night of September 6, 2007 was actually a computer simulation of a peaceful night over Syria, rather than a country under air attack.&lt;br /&gt;&lt;br /&gt;A more recent cyber-attack was the Stuxnet worm that destroyed about 3,000 Iranian centrifuges that were enriching U-235 from natural uranium hexafluoride gas.  Apparently, the Stuxnet worm caused the centrifuges to spin in an erratic manner, ultimately destroying the centrifuges, and their ability to work properly in a train of centrifuges to produce enriched U-235.  Recall that natural uranium is about 0.7% U-235.  Nuclear power plants need pellets with a U-235 content of about 3%, while nuclear weapons require an enrichment of 90% U-235 to be efficient.  The problem is that once you have a train of 10,000 centrifuges, all you have to do is keep feeding the uranium hexafluoride gas through the train until you get to the 90% U-235 level.  Once you have U-235 at a purity of 90%, all you have to do is slam two chunks together in a pipe bomb like the Little Boy atomic bomb that destroyed Hiroshima.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Nations of the World Are Already in a Cyber Arms Race&lt;/strong&gt;&lt;br /&gt;Clarke goes on to explain that just about every defense department of every nation upon the face of the Earth has created a Cyber War department.  After all, recruiting a small army of cyber-hackers is a comparatively low-budget affair for the world’s defense departments, even for the lowliest of nations.  These cyber-warriors go about creating botnet networks of PCs infected with malware primed to commence DOS (Denial of Service) attacks upon designated websites on command from a central server, and they are also inserting trapdoors and logic bombs into the critical software of foreign nations that is used to run their national infrastructure, like their electrical power grids and banking systems.  In the past, Richard Clarke had a lot to do with the nuclear defense policies of the United States, but he points out that the main problem with a massive cyber-attack is that you don’t know for sure who originated the attack.  This greatly complicates the problem of deterrence by means of massive retaliation.  If a large number of transformers and generators in the United States power grid were to all burn out at the same time, how would you ever know where the cyber-attack came from?  As Clarke points out, it might be possible to determine that the attack originated from a small server in Estonia, but who was really behind the attack?  If the United States was in a shooting war with China at the time, the most likely suspect would be China, but what if it were really a mischievous North Korea trying to exasperate the situation, and have the United States unleash its cyber arsenal upon China?  Not being able to accurately tell where a cyber-attack originated from is a very destabilizing factor, and puts pressures on combatants to launch a first strike before their software infrastructure goes down.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Possible Cyber Repeat of World War I&lt;/strong&gt;&lt;br /&gt;Clarke also points out that one of the greatest dangers of cyber war is that the nations of the world may not know what they have already wrought.  As I pointed out in &lt;a href="http://softwarephysics.blogspot.com/2008/07/intro.html"&gt;The Fundamental Problem of Everything&lt;/a&gt;, it seems that a necessary condition for civilization is the rise of the Powers That Be in societies.  All civilized societies need the Powers That Be to run things, and all civilizations and societies necessarily have a mechanism for creating their Powers That Be, whether that be through the heredity of individuals within a monarchial line of descent, free and democratic elections of representatives, or through the infighting amongst a number of individuals within the central committee of a ruling oligarchical class.  Now there is nothing wrong with having the Powers That Be run things, they just seem to be a necessary condition of civilization.  But we must always remember that the Powers That Be are also human, and therefore, are subject to the limitations of human nature.  For example, the Powers That Be who ran the world just prior to World War I did not recognize the game-changing effects of the mechanization of warfare.  The development of high volume rail systems, capable of quickly transporting large numbers of troops and munitions, the invention of the machine gun, and the arrival of mechanized transport vehicles and tanks, greatly increased the killing power of nation-states.  This was not generally recognized by the Powers That Be prior to the catastrophe of World War I, which resulted in 40 million casualties and the deaths of 20 million people for apparently no particular reason at all.  Even so, the Powers That Be of the time did correctly recognize that they would not be part of the fighting and dying, wartime services that traditionally were always delegated to the little people in past centuries.  Similarly, the Powers That Be who initiated World War II were of course fully aware of the horrors of mechanized warfare, but again, were quite confident that they would not be part of the fighting and dying, so the horrors of World War II even outdid those of World War I.  This all changed with the Cold War.  Suddenly, with large stockpiles of nuclear weapons on both sides, the Powers That Be realized that this time they would indeed be part of the fighting and dying, and miracle of miracles, World War III never happened!  We came close a few times, but thanks to MAD (Mutually Assured Destruction), the Powers That Be always withdrew from the brink.  Yes, this may be a very cynical way of looking at things, but given the limitations of human nature, I believe it is a valid model.  If the Powers That Be of the world are convinced that they will personally be big losers in a world-wide cyber war, it may never happen.&lt;br /&gt;&lt;br /&gt;So how can we extend the strategic concept of MAD to cyber war?  I think the world-wide IT community has to let the Powers That Be of the world realize that once a full-scale global cyber war breaks out that, no matter what cyber war peace conventions are in place at the time, it will probably spill over and take out the world financial and banking systems.  As I explained in &lt;a href="http://softwarephysics.blogspot.com/2008/09/new-introduction-to-softwarephysics.html"&gt;MoneyPhysics&lt;/a&gt;, money is not “real”, it is just a collection of bits in cyberspacetime, and every maniacal dictator has his private Swiss bank accounts to protect.  Going back to my definition of physical reality:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Physical Reality&lt;/strong&gt; - Something that does not go away even when you stop believing in it.&lt;br /&gt;&lt;br /&gt;Once people lose faith in money and who owns what, the world economy will quickly unravel.  After all, as I also pointed out in &lt;a href="http://softwarephysics.blogspot.com/2008/09/new-introduction-to-softwarephysics.html"&gt;MoneyPhysics&lt;/a&gt;, we nearly did this to ourselves already in the fall of 2008 without a cyber war even taking place!  So it is important for IT organizations, like the ACM and IEEE, to acknowledge the possibility of a full-scale global cyber war and its likely effects upon the world economy and financial systems, in order to avoid the equivalent catastrophe of World War I in cyberspacetime.  If you Google for “Cyber War” or “Cyber Defense” you will get many millions of hits and find a large number of organizations already devoted to cyber defense, so we have a good start at this. Now a strategic policy of Cyber-MAD would likely dissuade the Powers That Be of nation-states, like an economic version of the Doomsday Machine found in &lt;em&gt;Dr. Strangelove&lt;/em&gt;, but what about the would-be cyber-terrorists of the world who would be more than happy to see the economies of the Western world in tatters?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Make Softwarephysics Part of Your Cyber Defense&lt;/strong&gt;&lt;br /&gt;I think this is where softwarephysics can be of use.  Just as a good understanding of nuclear physics was essential during the Cold War, a good understanding of softwarephysics is essential to mount an effective cyber defense against cyber-attacks in cyberspacetime.  In &lt;a href="http://softwarephysics.blogspot.com/2008/05/new-introduction-to-softwarephysics.html"&gt;The Fundamental Problem of Software&lt;/a&gt;, I laid down the three laws of software mayhem:&lt;br /&gt;&lt;br /&gt;1. The second law of thermodynamics tends to introduce small bugs into software that are never detected through testing.&lt;br /&gt;&lt;br /&gt;2. Because software is inherently nonlinear these small bugs cause general havoc when they reach production.&lt;br /&gt;&lt;br /&gt;3. But even software that is absolutely bug-free can reach a critical tipping point and cross over from linear to nonlinear behavior, with disastrous and unpredictable results, as the load on software is increased.&lt;br /&gt;&lt;br /&gt;The first two laws of software mayhem are certainly to the advantage of nations planning for a national cyber defense because they predict that software is a very fragile and brittle substance indeed, so trapdoors and logic bombs are subject to the same frailties as all other production software, and are likely to fail just at the moment that you need them.  This means that there is a very good chance that many of the trapdoors and logic bombs deployed in advance will fail just when they are being called upon to bring down a nation’s software infrastructure.  As all IT professionals in Applications Development or Operations know, the slightest change to the IT infrastructure, like operating system upgrades of servers, patches to database management systems, or changes to firewall rules, load balancers, switches, routers, and domain name servers, as well as changes to infrastructure software like apache configuration files, J2EE Appserver configuration changes, and changes to messaging and gateway software can all quickly bring the whole thing down like a collapsing house of cards.  I am in the Middleware Operations group for my present employer and all day and night long we are in a constant battle to keep it all up and running.  We are constantly troubleshooting problems and getting things back online by restarting software that has spontaneously gone into a bad state.  And whenever we do an install we are always prepared to back it out when problems arise, and about 10% of the time we do back out installs, even though all the software to be installed went through rigorous unit and integration testing by Applications Development, followed by UAT testing by end-users, and Production Assurance testing by professional testers.  So fielding trapdoors and logic bombs that work is not an easy task.  Trapdoors can be periodically tested by an enemy, but logic bombs would be very hard to test in advance, and the constant churn of the IT infrastructure will mean that the half-life of trapdoors and logic bombs will most likely be on the order of several months or less.  Just like all other production software, trapdoors and logic bombs require constant maintenance to keep them operational, and this is a great advantage to the defender.&lt;br /&gt;&lt;br /&gt;On the other hand, the third law of software mayhem is to the advantage of an attacker because it means that it is possible to crash websites with botnet DOS (Denial of Service) attacks by simply overwhelming the website with 10 times its normal level of traffic.  The good news is that DOS attacks require an active network of botnet PCs to maintain the necessary high levels of incoming traffic and this allows the defending website to do traceroutes on the incoming packets to find their source and possibly block their traffic.  Also DOS attacks are much less damaging than trapdoors and logic bombs, since they primarily are used to bring down websites, but cannot affect the internal software used to run critical infrastructure like the electrical grid, air traffic control systems, financial and banking systems, nuclear power plants, refineries, chemical plants, and the phone systems.&lt;br /&gt;&lt;br /&gt;Softwarephysics provides some additional insights into how to mount a cyber defense of a nation’s cyberspacetime.  As we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/06/new-introduction-to-softwarephysics.html"&gt;Self-Replicating Information&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/07/intro.html"&gt;The Fundamental Problem of Everything&lt;/a&gt;, the “real world” of human affairs is largely shaped by self-replicating information.  It is all about the interplay of the self-replicating information found in genes, memes, and software, and with the fact that software is rapidly becoming the dominant form of self-replicating information on the planet.  Since genes, memes, and software are all forms of self-replicating information, much can be learned about defending software against cyber-attacks by looking to the defense mechanisms of genes and memes.  Since genes have been around much longer than memes, and consequently, have had much more time to evolve defense mechanisms against invasions by the foreign genes found in the DNA survival machines of bacteria, viruses, and parasites, softwarephysics would suggest starting there.  In &lt;a href="http://softwarephysics.blogspot.com/2008/10/introduction-to-softwarephysics.html"&gt;How to Think Like a Softwarephysicist&lt;/a&gt;, I explained that the solution to most IT problems can be found by looking to biology and adopting a biological approach, and this certainly applies to cyber defense as well.  First of all, genes do not follow a strategy of “the best defense is a good offense” because genes, like the potential victims of a cyber-attack, do not know where the attacks by foreign genes will be coming from, so trying to take out the enemy in advance with a first strike is meaningless.  Instead, genes create an immune system that constantly scans for potential attacks from foreign genes and focuses on defending critical biological infrastructure.  Immune systems are composed of billions of specialized cells all working in parallel to defend an organism against invading foreign genes, and the same approach could be applied to the defense of software running in cyberspacetime.&lt;br /&gt;&lt;br /&gt;In a similar manner, Richard Clarke suggests that the United States focus on defending a triad of critical infrastructure – the power grid, the Tier 1 ISP providers like AT&amp;T, Verizon, Level 3, Qwest, and Sprint that form the backbone of the Internet, and the internal Department of Defense networks that carry sensitive military information.  But how do you do that?  Richard Clarke suggests that the power grid should be unplugged from the Internet.  That means that a separate secured internal network, run by the Federal government, would need to be created to allow the software that electrical utilities use to communicate with each other for load balancing and the exchange of electrical generation capacity to operate.  Disconnecting the electrical power grid from the Internet would make it much harder for cyber-attacks because it would eliminate the innumerable points of unsecured entry allowed by the Internet.  If you have ever lost electrical power for an extended period, you know just how important electrical power is.  I lost power for three days back in the 1980s when an ice storm hit the Chicago area in the middle of winter.  It quickly takes you back to the 18th century with very dim candlelight and no central heat.  I at least had natural gas to cook food with and a functional city water supply, but in a full-blown attack on the electrical grid there would be no power to run the compressors that deliver natural gas in pipelines and no pumps to lift water in city water towers.  There would be no gasoline to pump at service stations and very little food on grocery store shelves either.  Clarke also recommends defending the core Tier 1 ISP providers by allowing them to do deep-packet scans of packets, looking for malware as the packets pass through their networks.  Finally, Clarke recommends that the secured Department of Defense networks be totally isolated from the Internet and further hardened to prevent cyber-attacks upon these critical networks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Use the Y2K Experience as a Guide&lt;/strong&gt;&lt;br /&gt;As IT professionals, we can all assist in cyber defense of our nations, since we are the ones on the front lines of defense.  This is something the IT community can do.  In many respects, it is much like the Y2K challenge of the late 1990s that the world-wide IT community successfully met.  My son was born early in 1981, and later that year I was having a discussion with my stock broker about funding his college education.  My broker explained that I could buy discounted stripped U.S. Treasury bonds for something like $125 that would pay out $1,000 in my son’s college years.   Because inflation was raging at over 11% per year in those days, I could essentially lock in zero coupon bonds that were insured by the Federal government at a guaranteed rate of 12% interest and which could not be called before they matured in the far distant future.  So I bought a bunch of stripped U.S. Treasury bonds that matured in 1999, 2000, 2001, and 2002.  While I was on the phone with my broker, I commented that it seemed so strange to be talking about years like 2000, 2001 and 2002 because the both of us had only dealt with 20th century years like 1965 for our entire lives.  When I got off the phone, I had one of those “uh-oh” moments, as I thought about all the code that I had written with two digit years that read and wrote files containing dates like 101265 for October 12, 1965.  Doing arithmetic in my code, like 65 – 51 = 14 years, worked just great in the 20th century, but would not work for 2002 – 1998 because 02 – 98 was going to yield  -96 years instead of 4 years!  That’s when the Y2K problem first hit me, but this was back in 1981, so I figured that somebody else would surely fix it all in the far distant future, so not to worry.  Now scroll forward to late 1996.  I got a call from Amoco’s first Y2K Czar asking me if I would like to join Amoco’s Y2K project.  I had written Amoco’s Application Portfolio System with &lt;a href="https://docs.google.com/Doc?id=dhjzddgs_156dfzhf6kh"&gt;BSDE&lt;/a&gt; back in the mid-1980s, so I was familiar with collecting lots of data on Amoco’s systems, and that’s how I got drafted for the Y2K project.  Amoco’s first Y2K Czar brought in a consulting company to scan our source code libraries and the initial scans revealed that we indeed had a very serious problem.  Like all the other IT departments throughout the entire world, we had strewn our systems with millions of logic bombs all set to go off at the same time as we approached the year 2000.  The consulting company we brought in racked up some pretty serious bills scanning our code, but unfortunately was totally clueless about how to fix the code because all of the affected systems were intimately tied together into a huge processing knot.  You could not simply fix one system at a time because the systems exchanged data with each other via files and databases, so you had to carefully remediate groups of related systems at the same time and that required an intimate knowledge of the systems that the consulting company did not have.  Meanwhile, our Y2K group could not get any help from the Applications Development groups because they were all just trying to survive through the day and were not thinking much past their next install weekend.  Besides, our Y2K group had that pricy consulting company that was going to do all the work and fix everything for them!  People were still pretty much in denial about the Y2K problem back in 1996.  All along our first Y2K Czar kept telling our CIO that the glass was half full, but that we were making steady progress.  But in 1997 the Y2K problem began to appear in the IT trade rags, and that got our CIO’s attention.  Suddenly our CIO realized that his glass was not half full, it was actually half empty!  So our first Y2K Czar was summarily terminated for cause and escorted from the building!  Things were a little tense back in those days on the Y2K projects around the world.  A few blocks away from Amoco’s headquarters, at CNA insurance, two members of their Y2K team got into a fist fight outside of an elevator and were immediately terminated under CNA’s zero-tolerance policy!  Amoco’s second Y2K Czar came in with both barrels blazing.  He immediately fired the old consulting company and hired one of the big-gun consulting companies to take its place and come in and finish (really start) the job.  Suddenly there were hundreds of young kids swarming all over our Applications Development groups trying to apply the consulting company’s brand-new Y2K methodology.  The burn rate for this effort was a little over $2 million/month, and after a few months of that, our CIO decided that our second Y2K Czar should take early retirement.  Amoco’s third Y2K Czar came in with a completely different attitude.  Instead of charging off in a mad rush in the arms of a consulting company, we spent about a month just sitting around trying to figure out how we could get ourselves out of this mess all by ourselves, without using consulting companies at all.  By then we had figured out that the consulting companies really did not know how to fix the Y2K problem at all.  Out of these brain-storming sessions we developed an overall strategy to push the Y2K problem down to the grass-roots level of the Applications Development groups within Amoco because they were the only ones who knew Amoco’s systems.  So we split up Amoco along its subsidiary lines.  I had the Amoco Corporation holding company and its Amoco Production Company subsidiary, for a total of about one third of Amoco’s total number of applications.  I had about a dozen Y2K sub-coordinators under me and each of them had a Y2K sub-coordinator under them in each of the Applications Development groups.  Our Y2K group then set up the policies and procedures to do the Y2K remediation of Amoco’s software and provided the tools to do the work, but it was the responsibility of each Applications Development group to remediate the software that they supported.  One of the tools our Y2K group provided was a database application to keep track of the Y2K remediation efforts for each application.  The first thing we did was to classify each application by criticality – High, Medium, or Low and then to focus on the High and Medium applications first.  For Y2K certification testing we created a mainframe LPAR and a Y2K lab filled with Unix and Windows servers.  Applications were then run through a 2 week flight in the Y2K lab in which we ran the remediated software through a series of 32 critical dates by changing the system clocks on the mainframe LPAR and the Unix and Windows servers.  The first date was for the infamous January 1, 1999 or “010199” problem.  You see lots of programmers came up with the brilliant trick of using a year date of “99” to signify something special, like the last record in a file, so we had to test for that condition.  Naturally, the date January 1, 2000 (010100) was in the list of dates.  This new Y2K strategy of Amoco doing its own Y2K remediation and using Applications Development to do the work in a massively parallel manner really worked and Amoco finished up its Y2K remediation by early 1999, just in time for its take over by BP!  Again, doing things in a massively parallel manner is a hallmark of taking a biological approach to solve IT problems as outlined in &lt;a href="http://softwarephysics.blogspot.com/2008/10/introduction-to-softwarephysics.html"&gt;How to Think Like a Softwarephysicist&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So I think there are some lessons that can be learned from the world-wide Y2K effort of the past decade that can be applied to defending against a cyber-attack.  First, the nations of the world should set the agenda by defining a national cyber defense policy for dealing with cyber-attacks upon their citizens.  This would include raising the awareness of their native IT community to the dangers of cyber-attacks upon the nation and providing defensive software weapons where possible.  But ultimately the work needs to be pushed down to the IT professionals of each nation who know and live with the national software infrastructure on a daily basis, especially Applications Development, Operations and IT Security.  Just as few IT professionals were thinking about the Y2K problem in 1996, very few IT professionals today are worrying about defending their nation against a world-wide cyber war.&lt;br /&gt;&lt;br /&gt;In the meantime, there are a few things we can all do to help defend against cyber-attacks.  First of all, as in any dangerous urban situation, be aware of your surroundings and be suspicious of strange behaviors.  For example, back in the early 1980s Amoco sent me out to Denver to convince the manager in charge of the Accounting Department for the Amoco Pipeline company to migrate his accounting processing from the Data General minicomputers that he had in Denver to the Amoco Corporate Timesharing System running on VM/CMS.  Amoco was paying a fortune to rent these old Data General minicomputers, and I showed him how he could save a bundle by migrating to the Corporate Timesharing System.  For me it was a real no-brainer decision, like can you tell the difference between a big number and a little number, but no matter how I tried, I just could not convince the manager to migrate his processing.  Several years later I learned that the accounting manager had been arrested for arson!  Apparently he had been using the Data General minicomputers to cook the books and embezzle funds from Amoco.  He was facing an audit of the Data Generals and got the brilliant idea to set his data center on fire with an incendiary device to burn up the Data Generals and their data.  Luckily, the incendiary device failed.  So when things don’t seem to make sense, be suspicious of sabotage and contact your IT Security department.  Many IT professionals in Applications Development and Operations tend to view IT Security as more of a nuisance than an ally.  After all, there is nothing worse than being called into a conference call for an outage, only to find that you cannot login to a server or that your sudo access to production IDs is no longer working because of an IT Security problem.  For some reason, the people on the conference call still seem to blame you for not being able to login and fix the problem.  But we really need to work with IT Security if outsiders are planting trapdoors and logic bombs in the software we support.  So be vigilant and practice good IT security hygiene.  Be sure to change your passwords frequently, make sure that your hard drive is encrypted, ensure that the Unix permissions on your files are restricted to allow no more access than is essential, watch for strange executables in your production libraries or updated versions of executables that seem to appear outside of normal install operations, don’t kill the weekly virus scans of your work PC even though they slow down your work when you are under the gun, when designing applications think hard about security and take seriously the idea of a foreign nation assaulting your code, help your IT Security department conduct penetration tests and vulnerability scans of your servers, and be sure to alert your IT Security department whenever you are suspicious of foul play.  These are all good IT practices, and since defending your company or organization against a national cyber-attack also defends against cyber-crime, your employer should be very supportive of your efforts.&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-7154089922023120994?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/7154089922023120994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=7154089922023120994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/7154089922023120994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/7154089922023120994'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/02/new-introduction-to-softwarephysics.html' title='Cyber Defense'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-2396661889846787403</id><published>2011-01-28T15:01:00.000-08:00</published><updated>2011-11-12T08:16:34.784-08:00</updated><title type='text'>How to Use Your IT Skills to Save the World</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;I just finished &lt;em&gt;The Flooded Earth&lt;/em&gt; (2010) by Peter Ward, one of my most favorite paleontologists.  Peter Ward is an expert on mass extinctions, particularly the Permian-Triassic mass extinction at the Paleozoic-Mesozoic boundary 251 million years ago, described in his &lt;em&gt;Under a Green Sky&lt;/em&gt; (2007).   There are several other good books by Peter Ward that provide further interesting insights into the nature of mass extinctions - &lt;em&gt;The Life and Death of Planet Earth&lt;/em&gt; (2003), &lt;em&gt;Gorgon – Paleontology, Obsession, and the Greatest Catastrophe in Earth’s History &lt;/em&gt; (2004), and &lt;em&gt;Out of Thin Air &lt;/em&gt; (2006), all of which are very good reads.  &lt;em&gt;The Flooded Earth&lt;/em&gt; picks up where &lt;em&gt;Under a Green Sky&lt;/em&gt; left off and both books posit that mankind might be initiating a human-induced greenhouse gas mass extinction by burning up all the fossil fuels that have been laid down over hundreds of millions of years in the Earth’s crust.  What differentiates Peter Ward from many climatologists is that, as a geologist and paleontologist, he looks at climate change from the perspective of deep time, rather than focusing on the past 100,000 years or so.  Following the well-tested geological concept of Hutton’s and Lyell’s uniformitarianism, in which the “present is key to the past”, Peter Ward inverts the logic to point out that the past may be key to the future as well.  By looking back at past greenhouse gas mass extinctions, like the Permian-Triassic mass extinction, we can get a sense of what mankind might have in store for itself if carbon dioxide levels keep rising.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Earth’s Long-Term Climate Cycle in Deep Time&lt;/strong&gt;&lt;br /&gt;As we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/04/introduction-to-softwarephysics.html"&gt;Software Chaos&lt;/a&gt;, weather systems are examples of complex nonlinear systems that are very sensitive to small changes to initial conditions. The same goes for the Earth’s climate; it is a highly complex nonlinear system that we have been experimenting with for more than 200 years by pumping large amounts of carbon dioxide into the atmosphere. The current carbon dioxide level of the atmosphere has risen to 390 ppm, up from a level of about 280 ppm prior to the Industrial Revolution. Now if this trend continues, computer models of the nonlinear differential equations that define the Earth’s climate indicate that we are going to melt the polar ice caps and also the ice stored in the permafrost of the tundra. If that should happen, sea level will rise about 300 feet, and my descendents in Chicago will be able to easily drive to the new seacoast in southern Illinois for a day at the beach.  Worse yet, Peter Ward points to recent research which indicates that a carbon dioxide level of as little as 1,000 ppm might trigger a greenhouse gas mass extinction that could wipe out about 95% of the species on Earth and make the Earth a truly miserable planet to live upon.  &lt;br /&gt;&lt;br /&gt;This is not a fantasy.  The Earth’s climate does change with time and these changes have greatly affected life in the past and will continue to do so on into the future.  By looking into deep time, we can see that there have been periods in the Earth’s history when the Earth has been very inhospitable to life and nothing like the Earth of today.  Over the past 600 million years, during the Phanerozoic Eon during which complex life first arose, we have seen five major mass extinctions, and it appears that four of those mass extinctions were greenhouse gas mass extinctions, with one caused by an impact from a comet or asteroid 65 million years ago that wiped out the dinosaurs in the Cretaceous-Tertiary mass extinction that ended the Mesozoic Era and kicked off the Cenozoic Era.&lt;br /&gt;&lt;br /&gt;We are living in a very strange time in the history of the Earth.  The Earth has been cooling for the past 40 million years, as carbon dioxide levels have significantly dropped.  This has happened for a number of reasons.  Due to the motions of continental plates caused by plate tectonics, the continents of the Earth move around like bumper cars at an amusement park.  With time, all the bumper car continents tend to smash up in the middle to form a huge supercontinent, like the supercontinent Pangea that formed about 275 million years ago.  When supercontinents form, the amount of rainfall on the Earth tends to decline because much of the landmass of the Earth is then far removed from the coastlines of the supercontinent and is cut off from the moist air that rises above the oceans.  Consequently, little rainwater with dissolved carbon dioxide manages to fall upon the continental rock.  Carbon dioxide levels in the Earth’s atmosphere tend to increase at these times because not much carbon dioxide is pulled out of the atmosphere by the chemical weathering of rock to be washed back into the sea by rivers as carbonate ions.  However, because the silicate-rich continental rock of supercontinents, which is lighter and thicker than the heavy iron-rich basaltic rock of the ocean basins, floats high above the ocean basins like a blanket, the supercontinents tend to trap the Earth’s heat.  Eventually, so much heat is trapped beneath a supercontinent that convection currents form in the taffy-like asthenosphere below the rigid lithospheric plate of the supercontinent.  The supercontinent then begins to break apart, as plate tectonic spreading zones appear, like the web of cracks that form in a car windshield that takes a hit from several stray rocks, while following too closely behind a dump truck on the freeway.  This continental cracking and splitting apart happened to Pangea about 150 million years ago.   As the continental fragments disperse, subduction zones appear on their flanks forcing up huge mountain chains along their boundaries, like the mountain chains on the west coast of the entire Western Hemisphere, from Alaska down to the tip of Argentina near the South Pole.  Some of the fragments also collide to form additional mountain chains along their contact zones, like the east-west trending mountain chains of the Eastern Hemisphere that run from the Alps all the way to the Himalayas.  Because there are now many smaller continental fragments with land much closer to the moist oceanic air, rainfall on land increases, and because of the newly formed mountain chains, chemical weathering and erosion of rock increases dramatically.  The newly formed mountain chains on all the continental fragments essentially suck carbon dioxide out of the air and wash it down to the sea as dissolved carbonate ions.  &lt;br /&gt;&lt;br /&gt;The break up of Pangea and the subsequent drop in carbon dioxide levels has caused a 40 million year cooling trend on Earth, and about 2.5 million years ago, carbon dioxide levels dropped so low that the Milankovitch cycles were able to begin to initiate a series of a dozen or so ice ages.  The Milankovitch cycles are caused by minor changes in the Earth’s orbit and inclination that lead to periodic coolings and warmings.  In general, the Earth’s temperature drops by about 15&lt;sup&gt;0&lt;/sup&gt; Fahrenheit for about 100,000 years and then increases by 15&lt;sup&gt;0&lt;/sup&gt; Fahrenheit for about 10,000 years.  During the cooling period we have an ice age because the snow in the far north does not fully melt during the summer and builds up into huge ice sheets that push down to the lower latitudes.  Carbon dioxide levels also drop to about 180 ppm during an ice age, which further keeps the planet in a deep freeze.  During the 10,000 year warming period, we have an interglacial period, like the Holocene interglacial that we now find ourselves in, and carbon dioxide levels rise to about 280 ppm.&lt;br /&gt;&lt;br /&gt;Thus the Earth usually does not have polar ice caps, we just happened to have arrived on the scene at a time when the Earth is unusually cold and has polar ice caps. From my home in the suburbs of Chicago, I can easily walk to an abandoned quarry of a Devonian limestone reef, clear evidence that my home was once under the gentle waves of a shallow inland sea several hundred million years ago, when there were no ice caps, and the Earth was much warmer.  Resting on top of the Devonian limestone is a thick layer of rocky glacial till left behind by the ice sheets of the Wisconsin glacial period that ended 10,000 years ago, as vast ice sheets withdrew and left Lake Michigan behind.  The glacial till near my home is part of a terminal glacial moraine.  This is a hilly section of very rocky soil that was left behind as a glacier acted like a giant conveyer belt, delivering large quantities of rocky soil and cobbles to be dumped at the end of the icy conveyor belt to form a terminal moraine.  It is like all that dirt and gravel you find on your garage floor in the spring.  The dirt and gravel were transported into your garage by the snow and ice clinging to the undercarriage of your car, and when it melted it dropped a mess on your garage floor.  This section of land was so hilly and rocky that the farmers of the area left it alone and did not cut down the trees, so now it is a forest preserve.  My great grandfather used to hunt in this glacial moraine and my ancestors also used the cobbles to build the foundations and chimneys of their farm houses and barns.  There is a big gorge in one section of the forest preserve where you can still see the left over effects of this home-grown mining operation for cobbles.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Effect of Climate Cycles Upon Life&lt;/strong&gt;&lt;br /&gt;The long-term climatic cycles brought on by these plate tectonic bumper car rides have also greatly affected the evolution of life on Earth.  Two of the major environmental factors affecting the evolution of living things on Earth have been the amount of solar energy arriving from the Sun and the atmospheric gases surrounding the Earth that held it in.  For example, billions of years ago the Sun was actually less bright than it is today. Our Sun is a star on the main sequence that is using the proton-proton reaction and the carbon-nitrogen-oxygen cycle in its core to turn hydrogen into helium-4, and consequently, turn matter into energy that is later radiated away from its surface.  As a main-sequence star ages, its energy producing core begins to contract, as the amount of helium-4 waste rises, and it shifts from using the proton-proton reaction to relying more heavily upon the carbon-nitrogen-oxygen cycle which runs at a higher temperature. Thus, as a main-sequence star ages, its core contracts and heats up and it begins to radiate more energy at its surface. For example, the Sun currently radiates about 30% more energy today than it did about 4.5 billion years ago, when it first formed and entered the main sequence, and about 1.0 billion years ago, the Sun radiated about 10% less energy than today.  Fortunately, the Earth’s atmosphere had plenty of greenhouse gasses, like carbon dioxide, in the deep past to augment the low energy output of our youthful, but somewhat anemic, Sun.  Using some simple physics, you can quickly calculate that if the Earth did not have an atmosphere containing greenhouse gases, like carbon dioxide, the surface of the Earth would be on average 27&lt;sup&gt;0&lt;/sup&gt; Fahrenheit cooler than it is today and would be totally covered by ice.  So in the deep past greenhouse gases, like carbon dioxide, played a crucial role in keeping the Earth’s climate warm enough to sustain life.  People tend to forget just how narrow a knife edge the Earth is on, between being completely frozen over on the one hand, and boiling away its oceans on the other.  For example, in my Chicago suburb the average daily high is 24&lt;sup&gt;0&lt;/sup&gt; Fahrenheit on January 31st and 89&lt;sup&gt;0&lt;/sup&gt; Fahrenheit on August 10th.  That’s a whopping 65&lt;sup&gt;0&lt;/sup&gt; Fahrenheit spread just due to the Sun being 47&lt;sup&gt;0&lt;/sup&gt; higher in the sky on June 21st than on December 21st.  But the fact that the Sun has been slowly increasing in brightness over geological time presents a problem.  Without some counteracting measure, the Earth would heat up and the Earth’s oceans would vaporize, giving the Earth a climate more like Venus which has a surface temperature that melts lead.  Thankfully, there has been such a counteracting measure in the form of a long term decrease in the amount of carbon dioxide in the Earth’s atmosphere, principally caused by living things extracting carbon dioxide from the air to make carbon-based organic molecules which later get deposited into sedimentary rocks, oil, gas, and coal.  These carbon-laced sedimentary rocks and fossil fuels then plunge back deep into the Earth at the many subduction zones around the world that result from plate tectonic activities.  Fortunately over geological time, the competing factors of a brightening Sun, in combination with an atmosphere with decreasing carbon dioxide levels, has kept the Earth in a state capable of supporting complex life.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Greenhouse Gas Mass Extinctions&lt;/strong&gt;&lt;br /&gt;But as I always say, a vice is just a virtue carried to an extreme.  Geological history now shows that an overabundance of carbon dioxide in the atmosphere can bring on a greenhouse gas mass extinction.  The classic case is typified by the Permian-Triassic (P-T) mass extinction at the Paleozoic-Mesozoic boundary 251 million years ago. Greenhouse gas extinctions are thought to be caused by periodic flood basalts, like the Siberian Traps flood basalt of the late Permian. A flood basalt begins as a huge plume of magma several hundred miles below the surface of the Earth. The plume slowly rises and eventually breaks to the surface of the Earth, forming a huge flood basalt that spills basaltic lava over an area of millions of square miles to a depth of several miles. Huge quantities of carbon dioxide bubble out of the magma over a period of several hundred thousand years which greatly increases the ability of the Earth’s atmosphere to trap heat from the Sun. For example, during the Permian-Triassic mass extinction, carbon dioxide levels may have reached a level as high as 3,000 ppm, much higher than the 390 ppm of today. Most of the Earth warms to tropical levels with little temperature difference between the equator and the poles and with daily highs that can reach 140&lt;sup&gt;0&lt;/sup&gt; Fahrenheit.  This shuts down the thermohaline conveyer that drives the deep ocean currents. Currently, the thermohaline conveyer begins in the North Atlantic, where high winds and cold polar air reduce the temperature of ocean water through evaporation and concentrates its salinity, making the water very dense. The dense North Atlantic water, with lots of dissolved oxygen, then descends to the ocean depths and slowly winds its way around the entire Earth, until it ends up back on the surface in the North Atlantic several thousand years later.  Before submerging, the cold salty water of the North Atlantic picks up large quantities of dissolved oxygen, since cold water can hold much more dissolved oxygen than warm water, and this supply of oxygen from the surface keeps the water at the bottom of the oceans oxygenated.  When this thermohaline conveyer stops for an extended period of time, the water at the bottom of the oceans is no longer supplied with oxygen, and only bacteria that can survive on sulfur compounds manage to survive in the anoxic conditions. These sulfur-loving bacteria metabolize sulfur compounds to produce large quantities of the highly toxic gas hydrogen sulfide, the distinctive component of the highly repulsive odor of rotten eggs, which has a severe damaging effect upon both marine and terrestrial life.  As the hydrogen sulfide gas bubbles up from below, the sky turns a dingy green from all the hydrogen sulfide gas in the air and the oceans, choked with sulfur-loving bacteria, eventually turn a greasy purple and totally anoxic because of all the dissolved hydrogen sulfide gas. Nearly all fish species and other complex marine life die off in the oceans, as the surface waters too eventually lose all oxygen to support complex life.  The hydrogen sulfide gas also erodes the ozone layer as the ozone of the upper atmosphere is lost as it oxidizes the hydrogen sulfide gas.  This allows damaging ultraviolet light to reach the Earth’s surface which destroys the DNA of plant and animal life alike. Oxidation of hydrogen sulfide gas in the atmosphere, combined with the dramatic drop in oxygen producing life forms on both the land and in the sea, also causes the oxygen level of the atmosphere to drop to a suffocating low of 12%, compared to the current level of 21%.&lt;br /&gt;&lt;br /&gt;The combination of severe climate change, changes to atmospheric and oceanic oxygen levels and temperatures, the toxic effects of hydrogen sulfide gas, and the loss of the ozone layer cause a rapid extinction of about 95% of all species over a period of about a hundred thousand years. And unlike an impacting mass extinction from an incoming comet or asteroid, like the one that wiped out the dinosaurs, a greenhouse gas mass extinction does not quickly reverse itself, but persists for millions of years until the high levels of carbon dioxide are flushed from the atmosphere and oxygen levels once again rise. In the stratigraphic section, this is seen as a thick section of rock with decreasing numbers of fossils and fossil diversity leading up to the mass extinction, and a thick layer of rock above the mass extinction level with very few fossils at all, representing the long recovery period of millions of years required to return the Earth’s environment back to a more normal state.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;A Human-Induced Greenhouse Gas Mass Extinction&lt;/strong&gt;&lt;br /&gt;The good news is that even if we do pump up the carbon dioxide level of the Earth’s atmosphere to 1,000 ppm over the next 100 – 150 years, it might take a couple of thousand years for a greenhouse gas mass extinction to begin to unfold, so we do have some time to think this over before proceeding along this path of self-destruction.  The bad news is that human beings tend to live for the moment and are not very much concerned with anything more than a few months out. The person who chopped down the first tree on Easter Island was probably thinking about the same things as the person who chopped down the last tree on Easter Island.  Throughout history, human beings have had a tendency to squander resources until none were left and then to move on.  Unfortunately, this strategy seems to fall short when applied to an entire planet.  But why should we worry about people living 2,000 years from now?  Please remember that people are probably no smarter today than they were 200,000 years ago when &lt;em&gt;Homo sapiens&lt;/em&gt; first appeared.  All this carbon-based energy technology stems from the Scientific Revolution of the 17th century, which led to the first commercially successful steam engine invented by Thomas Newcomen in 1712 (see &lt;a href="http://softwarephysics.blogspot.com/2007/09/lesson-from-steam-engines.html"&gt;A Lesson From Steam Engines&lt;/a&gt; for details).  But don’t forget that we are enjoying the technological benefits of the second Scientific Revolution, not the first.  The first Scientific Revolution was initiated by Thales of Miletus in about 600 B.C., when he began to explain natural phenomena in terms that did not rely upon mythology.  Luckily for us, the Greek Scientific Revolution failed.  Otherwise there could have been a technological explosion by 400 B.C. that dramatically increased the population of the Earth to 9 billion people.  There could have been billions of people back then running around in SUVs burning up all the oil and coal thousands of years ago, leaving us with none and a carbon dioxide level of 1,000 ppm that initiated a greenhouse gas mass extinction.  You could be sitting here today, with a green sky and purple ocean, hungry, sweltering, and miserable on an Earth barely capable of sustaining life!  &lt;br /&gt;&lt;br /&gt;Perhaps we can work our way out of this mess with some additional geoengineering.  After all, we seemed to have geoengineered our way into this mess in the first place, so maybe we can geoengineer our way out too.  People have suggested that we could inject sulfate particles, or aerosols, into the upper atmosphere like volcanoes do when they blow their tops, to reflect incoming sunlight.  Or we could use robotic ships to increase the cloud cover over oceans by injecting water mists into the air.  I have read about a proposal to build 10 million computer controlled carbon dioxide scrubbers to extract all of our current emissions at a cost of several hundred billion dollars per year.  The only problem with the proposal is what do you do with 28 billion tons of carbon dioxide gas each year?  That’s a lot of gas to inject into sandstone reservoirs!  Geoengineering on such scales is going to be expensive.  Imagine the reverse situation.  Suppose the Earth was found to be dramatically cooling for lack of carbon dioxide and we had to artificially pump up the carbon dioxide level of the atmosphere to stave off the ice sheets from an impending Ice Age.  Imagine if we had to pay billions of people to explore for and produce all the oil and coal we use today and then burn it in cars and plants that did nothing useful beyond generating carbon dioxide.  Suppose you were required to spend several hours per day running a machine that simply spewed out carbon dioxide and cost you several hundred dollars per week to operate.  Such efforts would present a major impact to the world economy.  Granted, there are a whole host of ingenious geoengineering solutions being offered, but they all have side effects, and l am afraid that lots of the side effects are not even known and would not become apparent until the geoengineering solutions were put into effect.  Clearly, the safest approach is to simply stop emitting carbon dioxide by switching to solar, wind, geothermal, nuclear, and wave energy sources.  A viable fusion reactor would certainly do the job too, but the joke is that fusion power is the power of the future and always will be.  Unless we get serious about these alternative energy sources very quickly, the future does not look very bright.&lt;br /&gt;&lt;br /&gt;The problem is that we have known about this problem for over 50 years and have done absolutely nothing about it!  When we first began measuring the carbon dioxide level of the Earth’s atmosphere at the Mauna Loa observatory in Hawaii in 1958, the carbon dioxide level was rising at a rate of 0.95 ppm per year.  Now the carbon dioxide level is rising at a rate of 2.39 ppm per year.  In the coming years, it will be rising at a rate of 3 or 4 ppm per year as the demand for energy explodes with the increasing demand from the emerging economies of the world.  Even now, the carbon dioxide level of the Earth’s atmosphere is rising about 1,000 times faster than it did during the period that led up to the  Permian-Triassic mass extinction 251 million years ago.  So we don’t have that much time to waste.  Economically recoverable oil will be gone in about 50 years, so over the next few decades we will need to switch to coal on an ever increasing basis to fulfill the increasing appetite for world energy.  Coal is pretty cheap, and my suspicion is that coal will always be a little cheaper than the alternative sources of energy for quite some time.  It never seems to be the right time to begin switching to the alternative forms of energy.  Either the world economy is humming along splendidly and we don’t want to damage it with a burdensome conversion cost, or the world economy has tanked and we don’t want to make things worse.  So it seems that there never will be a good time to make the energy conversion to renewable sources of energy.  And as global warming in the 21st century begins to produce a rising sea level, increasingly extreme weather conditions, and shifting rain patterns that create droughts and regional floods, as outlined in &lt;em&gt;The Flooded Earth&lt;/em&gt;, there will be even less economic incentive to make the transition due to a lack of available funds, because so much money will need to be diverted to dealing with the consequences of global warming.  Plus, we will always be faced with Garrett Hardin's &lt;em&gt;Tragedy of the Commons&lt;/em&gt; (1968).  If the United States and Europe do convert to renewable energy resources, but China, India and the other emerging economies do not, then the problem will still continue.  Global warming is not an environmental problem, like others that the world has successfully addressed.   Most environmental problems can usually be corrected in a few decades or so by halting the production of one offending organic molecule and substituting a more benign molecule in its place, such as we did with the phasing out of Freon. Global warming, on the other hand, is a world-wide geophysical problem that might take hundreds of thousands of years to correct.  But there is a way out.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What You Can Do as  an IT Professional&lt;/strong&gt;&lt;br /&gt;So how do we get 6 billion people to cooperate in reducing carbon dioxide emissions if it requires the self-sacrifice of the individual for the greater good of all? Clearly, given the limitations of human nature, if that is our only recourse, we are all doomed. However, in the past decade or so we have been able to get nearly 6 billion people to cooperate through the spread of capitalism and the globalization of the world economy brought on by high-speed fiber optic telecommunication networks and the spread of IT technology.  This was not accomplished through the self-sacrifice of the individual. Instead, it was accomplished through the amazing “Invisible Hand” of Adam Smith, which allows the self-interest of the individual to benefit society as a whole. The only way we can possibly solve this problem is by making it easier and cheaper not to emit carbon dioxide than to continue on with business as usual, and IT technology is the only thing that can do that.  IT is a truly transformative force in the world today.  Just look to the recent revolutions in Tunisia and Egypt, and the spreading revolt throughout the entire Middle East, all the way to Iran.  In the past decade, the United States spent over a trillion dollars toppling Saddam Hussein in Iraq, and now it appears that all you need is the Internet, Facebook, Twitter and some blogs like this one.&lt;br /&gt;&lt;br /&gt;This is where you come in as an IT professional. IT technology has tremendous potential for reducing our consumption of energy and reducing emissions.  For example, I work for a really great company that instituted a “hoteling” initiative several years ago.  Now I only go into the office about one day per month for special “in-person” group meetings.  These “in-person” meetings are also broadcast as webconferences too, so basically I just go into the office once a  month for old times sake.  All you need is broadband connectivity to a good VPN, some email and instant messaging software, some voice over IP telephony software, and some software for webconferencing for meetings and group collaboration efforts and you have a virtual distributed office network! Your company probably has a lot of this already in place. Our set-up is so good that it passes the equivalent of a Turing Test, I cannot tell if my co-workers are in the office or out of the office when I work with them.&lt;br /&gt;&lt;br /&gt;Let me describe my typical workday.  Middleware Operations supports all the infrastructure software installed upon 200 production Unix servers, including Apache, Websphere, JBoss, Tomcat, ColdFusion, CTG, MQ, OFX, and many third party custom software products.  We install application software into these products and keep the whole thing up and running on a 24x7 basis.  As a member of Middleware Operations, I work very strange hours, including nights, weekends, and holidays.  We are on pager duty one week per month, being Day Primary one month and Night Primary the next.  We only work 40 hours per week, but we don’t get to pick which 40 hours!  For example, when on Night Primary for Middleware Operations, I might work a few hours from 1:00 – 3:00 AM troubleshooting a problem before my first Change Management teleconference meeting at 9:00 AM.  This meeting is a teleconference where Change Management, MidOps, UnixOps, NetOps, and Application Development go over all the upcoming scheduled change tickets to look for scheduling conflicts.  I call into the meeting from my laptop using voice over IP software and view the change calendar report on an internal website.  During the Change Management meeting, only about 5% of the change tickets really apply to Middleware Operations, so I check on all the pending change tickets in our queue that I need to approve for Middleware Operations.  While I am listening into the meeting and approving tickets, I will also get instant message pop-ups from project managers and Application Development programmers with questions about the status of pending change tickets or answers to questions that I have emailed them about concerning their implementation plans, or I might get an instant message pop-up from a staff member in Bangalore India with an update on some of the installs that happened the previous night.  I also work my email at the same time during the meeting.  Later in the day, I might join a webconference for a walkthrough of an install plan for an upcoming change ticket with Application Development.  During that meeting, I might get an instant message pop-up from a team member who lives in Indiana, or I might initiate an instant messaging session with him to discuss a technical problem on one of our websites.  When on Day Primary, I might also get paged into a conference call for a website outage via my BlackBerry.  On these voice over IP conference calls we might have 5 – 10 people using a group instant messaging session to troubleshoot the problem.  I might have 20 or so windows open while troubleshooting, looking at monitoring tools and logged into a large number of Unix servers, to look at logs and to restart software components as needed.  Later in the day, I might join a webconference for a demo of a new software technology that is being introduced.  Sometimes, I need to train a new team member.  To do that I set up a webconference so that the trainee can see what I am doing as I explain how a certain piece of software works.  I can also promote the trainee to be the moderator of the webconference and watch the trainee go through what I have just demonstrated.  Many times I will get paged by a frantic developer to approve a change ticket late in the day, when I would normally be driving home in a car and useless to all, but I just log back into our VPN and spend about 20 minutes going over the install plan before approving the ticket.  I might even get paged to approve a last-minute ticket at 9:00 PM, but I just quickly login again to review and approve it.  To keep things from getting out of hand, I simply keep a running tab of the time I actually work for my employer.  When I do some work, I just record my start and end times, and then credit the hours worked to my employer’s running tab.  When I begin work each day, I simply debit 8 hours from my employer’s running tab and only work the hours my employer actually needs me to perform duties, so some days I might only work 5 or 6 hours before logging off the VPN.  In this way, I can work a 40 hour workweek, which is quite rare in IT, but from the perspective of my employer, I am always available when needed, like a time-sharing operating system, even though much of the time I am “idle” and doing other things like living my personal life with my family.  When my laptop acts up, I open a ticket and somebody from desktop support uses software to take over my laptop remotely to fix it.  Even when I do come into the office for a special “in-person” meeting, none of the above work processes really change!  I do not physically walk to meeting rooms because that is a waste of time, I simply join the teleconference as usual.  When I have to work with a team member sitting a couple of cubes away, I don’t  walk over to her cube either because my old eyes cannot see her screen from more than 2 feet out.  Instead, I just open a webconference, like I would do if I were working from my home office.  So whether I am in the office or out of the office, I use software to work exactly the same way, regardless of where I am located physically in space.  Some of my teammates even go out to events and run errands while on pager support and use a high-speed wireless card to connect to our VPN when necessary, but I like working from my home office at a nice desk, so I stick around the house while on pager duty.  During my whole workday, I do not touch nor generate a single piece of paper the whole day long.  With all this IT technology, it seems time to me to turn our obsolete 20th century office buildings into condos with high population densities that limit the amount of traveling people need to do in their daily lives.&lt;br /&gt;&lt;br /&gt;I strongly believe that a distributed office platform greatly benefits both me and my employer because it allows me to be much more productive and flexible in delivering my services, and I believe a distributed office platform could work for most office work in general.  Imagine how much energy could be saved and carbon dioxide emissions reduced if nobody commuted to work!  The reason people still physically travel to a central location for office work stems from a change in work habits brought about by the Industrial Revolution. Prior to the Industrial Revolution, craftsmen worked out of their homes. It was the steam engines of the Industrial Revolution that brought us together, but the steam engines are gone now, so why are people still driving to the office?  I think it is just a holdover of 20th century thinking.  Imagine that everybody in the world had been working from home offices for 20 years, using a distributed office platform, and somebody in a meeting came up with this really great idea.  We should all spend an hour each morning and an hour each evening driving a car around in circles, spewing out carbon dioxide, and useless to all.  This would improve productivity because it would help to reinforce the idea that work is a hardship to be suffered by all.  After all, you really are not “working” unless you are suffering, and driving around in circles is surely a way to suffer.  I have been in the workforce for 36 years, and I have also run across a lot of people who confuse “being at work” with “doing work”.  They may spend the whole day in the office “working”, but they do not do anything constructive the whole day, beyond bothering people who really are trying to get some work done!  &lt;br /&gt;&lt;br /&gt;We have the technology to solve this problem. What really is needed is a change in thinking. As I pointed out previously, as IT professionals we are all warriors in the Information Revolution. So if your company has not instituted a similar program, gather up a little courage and email your CEO a proposal explaining how moving to a virtual distributed office system based upon telecommuting can save your company and fellow employees a great deal of time and money, while improving productivity at the same time.  Just ask him how much it costs each year to operate the company’s office buildings and pay the property taxes.  You can play a significant role in fixing this problem through the implementation of IT technology, so put your IT skills and abilities to work!&lt;br /&gt;&lt;br /&gt;Comments are welcome at &lt;a href="mailto:scj333@sbcglobal.net"&gt;scj333@sbcglobal.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see all posts on softwarephysics in reverse order go to:&lt;br /&gt;&lt;a href="http://softwarephysics.blogspot.com/"&gt;http://softwarephysics.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;Steve Johnston&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30536174-2396661889846787403?l=softwarephysics.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarephysics.blogspot.com/feeds/2396661889846787403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30536174&amp;postID=2396661889846787403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2396661889846787403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30536174/posts/default/2396661889846787403'/><link rel='alternate' type='text/html' href='http://softwarephysics.blogspot.com/2011/01/new-introduction-to-softwarephysics_28.html' title='How to Use Your IT Skills to Save the World'/><author><name>Steve Johnston</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30536174.post-8557581695815075873</id><published>2011-01-10T13:16:00.001-08:00</published><updated>2011-01-30T06:16:31.019-08:00</updated><title type='text'>Model-Dependent Realism - A Positivistic Approach to Realism</title><content type='html'>&lt;p style="line-height:140%; font-size:120%"&gt;In the &lt;a href="http://softwarephysics.blogspot.com/"&gt;Introduction to Softwarephysics&lt;/a&gt; we saw how softwarephysics adopts a very positivistic view of software in that we do not care about what software “really” is; we only care about how software is observed to behave, and that we only attempt to model this behavior with a set of effective theories.  Recall that positivism is an enhanced form of empiricism, in which we do not care about how things “really” are; we are only interested with how things are observed to behave. With positivism, physicists only seek out models of reality - not reality itself.  Effective theories are an extension of positivism.  An effective theory 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 works very well for objects moving in weak gravitational fields at less than 10% of the speed of light and which are larger than a very small mote of dust.  For things moving at high velocities or in strong gravitational fields we must use relativity theory, and for very small things like atoms we must use quantum mechanics.  All of the current theories of physics, such as Newtonian mechanics, classical electrodynamics, thermodynamics, statistical mechanics, the special and general theories of relativity, quantum mechanics, and quantum field theories like 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, and that is all positivism hopes to achieve.  The opposite view is called realism, in which an external physical reality actually exists all on its own and in an independent manner.  It really goes back to the age-old philosophical question – if a tree falls in the forest and nobody hears it - does it make a noise?  For a realist it certainly does.  For a positivist it may not unless some observable evidence is left behind in the Universe that it did.&lt;br /&gt;&lt;br /&gt;A good comparison of these two worldviews can be found in the &lt;em&gt;Dreams of a Final Theory&lt;/em&gt; (1992) by Steven Weinberg and &lt;em&gt;The Grand Design&lt;/em&gt; (2010) by Stephen Hawking and Leonard Mlodinow, in which they present their concept of a model-dependent realism.  There is also a very nice synopsis of model-dependent realism in the October 2010 issue of &lt;em&gt;Scientific American&lt;/em&gt; entitled &lt;em&gt;The (Elusive) Theory of Everything&lt;/em&gt; by the same authors.  Steven Weinberg is a brilliant theoretician and a winner of the 1979 Nobel Prize in Physics for his theory of the electroweak interaction, which unified the electromagnetic and weak interactions of the Standard Model of particle physics.  In &lt;em&gt;Dreams of a Final Theory&lt;/em&gt;, Weinberg makes a strong case for realism, since the discovery of a single all-encompassing final theory of everything would necessarily imply the existence of a single absolute reality independent of observation.  Stephen Hawking is famous to all as a brilliant theoretician and within the physics community is most famous for his theory of Hawking radiation emitted by black holes, which was the very first theory in physics to apply quantum effects to the general theory of relativity.  Leonard Mlodinow is a physicist at Caltech and the author of many popular books on physics and wrote for &lt;em&gt;Star Trek: The Next Generation&lt;/em&gt; as well.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;The Grand Design&lt;/em&gt;, Stephen Hawking and Leonard Mlodinow present an alternate worldview to that of Weinberg’s realism.  For them a single all-encompassing final theory of everything may not be possible because a single absolute reality may not exist.  Instead, they draw a more positivistic view with their concept of a model-dependent realism.  Model-dependent realism maintains that there is no absolute reality after all.  We can only hope for a collection of effective theories that present a series of models of reality that are confirmed by empirical observation, and each of these models essentially creates a reality of its own.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Need For a Return to Natural Philosophy&lt;/strong&gt;&lt;br /&gt;Both books have few kind words for philosophers, but both then go into some pretty heavy philosophical discussions of both positivism and realism, despite their apparent lack of confidence in philosophy.  However, I think we shall see in this posting that both books actually seem to demonstrate that, based upon the findings of the 20th century, physics must once again return to its roots in natural philosophy in order to make progress in the 21st century.  After all, the question of the existence of an absolute reality goes way back in philosophy, but since I have little background in philosophy, I will use the history of physics as a guide instead, as did the authors of both these books did as well.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The Grand Design&lt;/em&gt; begins with:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;… How can we understand the world in which we find ourselves?  How does the universe behave?  What is the nature of reality?  Where did all this come from?  Did the universe need a creator? … Traditionally these are questions for philosophy, but philosophy is dead.  Philosophy has not kept up with the modern developments in science, particularly physics.  Scientists have become the bearers of the torch of discovery in our quest for knowledge.&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;In &lt;em&gt;Dreams of a Final Theory&lt;/em&gt; in the chapter &lt;em&gt;Against Philosophy&lt;/em&gt;, Weinberg goes on with:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The value today of philosophy to physics seems to me to be something like the value of early nation-states to their peoples.  It is only a small exaggeration to say that, until the introduction of the post office, the chief service of nation-states was to protect their peoples from other nation-states.  The insights of philosophers have occasionally benefited physicists, but generally in a negative fashion – by protecting them from the preconceptions of other philosophers.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;But I do not aim here to play the role of a philosopher, but rather that of a specimen, an unregenerate working scientist who finds no help in professional philosophy.  I am not alone in this.  I know of no one who has participated actively in the advance of physics in the postwar period whose research has been significantly helped by the work of philosophers.  I raised in the previous chapter the problem of what Wigner calls the “unreasonable effectiveness” of mathematics; here I want to take up another equally puzzling phenomenon, the unreasonable ineffectiveness of philosophy.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Physicists do of course carry around with them a working philosophy.  For most of us, it is a rough-and-ready realism, a belief in the objective reality of the ingredients of our scientific theories.  But this has been learned through the experience of scientific research and rarely from the teachings of philosophers.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;With that said, let us now explore the nature of reality from an historical perspective within physics. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Historical Clash of Positivism and Realism in Physics&lt;/strong&gt;&lt;br /&gt;Before delving further into these two books, let us review the historical clash of positivism and realism in physics.  The debate over positivism and realism has been going on within the physics community from the very start, and in recent years has escalated with the unfolding of the quantum nature of reality and also with the quest for what is called a unified Theory of Everything or a Final Theory that would explain it all and replace our current collection of effective theories with a single unified theory of true reality.  It is generally thought that the modern Scientific Revolution of the 16th century began in 1543 when Nicolaus Copernicus published &lt;em&gt;On the Revolutions of the Heavenly Spheres&lt;/em&gt;, in which he proposed his Copernican heliocentric theory that held that the Earth was not the center of the Universe, but that the Sun held that position and that the Earth and the other planets revolved about the Sun.  A few years ago I read &lt;em&gt;On the Revolutions of the Heavenly Spheres&lt;/em&gt; and found that it began with a very strange foreword that essentially said that the book was not claiming that the Earth &lt;em&gt;actually&lt;/em&gt; revolved about the Sun, rather the foreword proposed that astronomers may adopt many different models that explain the observed motions of the Sun, Moon, and planets in the sky, and so long as these models make reliable predictions, they don’t have to exactly match up with the absolute truth.  Since the foreword did not anticipate space travel, it also implied that since nobody will ever really know for sure anyway, because nobody will ever be able to see from above what is really going on, there is no need to get too bent out of shape over the idea of the Earth moving.  I found this foreword rather puzzling and so disturbing that I almost put &lt;em&gt;On the Revolutions of the Heavenly Spheres&lt;/em&gt; down.  But a little further research revealed the true story.  However, before we get to that, below is the complete foreword to &lt;em&gt;On the Revolutions of the Heavenly Spheres&lt;/em&gt; in its entirety.  It is well worth reading because it perfectly encapsulates the ongoing philosophical clash between positivism and realism in the history of physics.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;To the Reader&lt;br /&gt;Concerning the Hypotheses of this Work&lt;br /&gt;&lt;br /&gt;There have already been widespread reports about the novel hypotheses of this work, which declares that the earth moves whereas the sun is at rest in the center of the universe. Hence certain scholars, I have no doubt, are deeply offended and believe that the liberal arts, which were established long ago on a sound basis, should not be thrown into confusion. But if these men are willing to examine the matter closely, they will find that the author of this work has done nothing blameworthy. For it is the duty of an astronomer to compose the history of the celestial motions through careful and expert study. Then he must conceive and devise the causes of these motions or hypotheses about them. Since he cannot in any way attain to the true causes, he will adopt whatever suppositions enable the motions to be computed correctly from the principles of geometry for the future as well as for the past. The present author has performed both these duties excellently. For these hypotheses need not be true nor even probable. On the contrary, if they provide a calculus consistent with the observations, that alone is enough. Perhaps there is someone who is so ignorant of geometry and optics that he regards the epicycle of Venus as probable, or thinks that it is the reason why Venus sometimes precedes and sometimes follows the sun by forty degrees and even more. Is there anyone who is not aware that from this assumption it necessarily follows that the diameter of the planet at perigee should appear more than four times, and the body of the planet more than sixteen times, as great as at apogee? Yet this variation is refuted by the experience of every age. In this science there are some other no less important absurdities, which need not be set forth at the moment. For this art, it is quite clear, is completely and absolutely ignorant of the causes of the apparent nonuniform motions. And if any causes are devised by the imagination, as indeed very many are, they are not put forward to convince anyone that they are true, but merely to provide a reliable basis for computation. However, since different hypotheses are sometimes offered for one and the same motion (for example, eccentricity and an epicycle for the sun’s motion), the astronomer will take as his first choice that hypothesis which is the easiest to grasp. The philosopher will perhaps rather seek the semblance of the truth. But neither of them will understand or state anything certain, unless it has been divinely revealed to him.&lt;br /&gt;Therefore alongside the ancient hypotheses, which are no more probable, let us permit these new hypotheses also to become known, especially since they are admirable as well as simple and bring with them a huge treasure of very skillful observations. So far as hypotheses are concerned, let no one expect anything certain from astronomy, which cannot furnish it, lest he accept as the truth ideas conceived for another purpose, and depart from this study a greater fool than when he entered it. Farewell.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now here is the real behind-the-scenes story.  Back in 1539 Georg Rheticus, a young mathematician, came to study with Copernicus as an apprentice.  It was actually Rheticus who convinced the aging Copernicus to finally publish &lt;em&gt;On the Revolutions of the Heavenly Spheres&lt;/em&gt; shortly before his death.  When Copernicus finally turned over his manuscript for publication to Rheticus, he did not know that Rheticus subcontracted out the overseeing of the printing and publication of the book to a philosopher by the name of Andreas Osiander, and it was Osiander who anonymously wrote and inserted the infamous foreword.  My guess is that Copernicus was a realist at heart who &lt;em&gt;really&lt;/em&gt; did think that the Earth revolved about the Sun, while his publisher, who worried more about the public reaction to the book, took a more cautious positivistic position.  I think that all scientific authors can surely relate to this story.&lt;br /&gt;&lt;br /&gt;Another early example of the clash between positivism and realism can be found in Newton’s &lt;em&gt;Principia&lt;/em&gt; (1687), in which he outlined Newtonian mechanics and his theory of gravitation, which held that the gravitational force between two objects was proportional to the product of their masses divided by the square of the distance between them. Newton knew that he was going to take some philosophical flack for proposing a mysterious force between objects that could reach out across the vast depths of space with no apparent mechanism, so he took a very positivistic position on the matter:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I have not as yet been able to discover the reason for these properties of gravity from phenomena, and I do not feign hypotheses. For whatever is not deduced from the phenomena must be called a hypothesis; and hypotheses, whether metaphysical or physical, or based on occult qualities, or mechanical, have no place in experimental philosophy. In this philosophy particular propositions are inferred from the phenomena, and afterwards rendered general by induction.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Instead, Newton focused on how things were observed to move under the influence of his law of gravitational attraction, without worrying about what gravity “really” was.&lt;br /&gt;&lt;br /&gt;However, in the very first few pages of Newton’s &lt;em&gt;Principia&lt;/em&gt;, Newton also proposed that there really was an absolute and fixed space filling the entire Universe that all objects existed in and moved through. This absolute fixed space was like a stage or background upon which the motions of all the objects in the Universe were played out upon. Newton admitted that, as Galileo had proposed earlier, you could not measure this fixed and absolute space directly, but just the same, it still existed. Newton also proposed that there was a fixed and absolute universal time that flowed at a constant rate that all observers agreed upon, but which could not be measured directly either.  Clocks really do not measure the rate at which time flows.  Clocks can only measure amounts of time, just as rulers can measure amounts of space.  To measure the rate at which time flows, you would need something like a speedometer, and we do not have such a device.  The ideas of a fixed and absolute space and time are such common sense self-evident concepts that Newton almost dismissed dealing with them outright in the first few pages of the &lt;em&gt;Principia&lt;/em&gt;  because they seemed so obvious to him, but this turned out to ultimately lead to his undoing. It would take more than 200 years and the work of Albert Einstein to reveal the flaws in his reasoning.  Thus for his concept of an absolute space and time, Newton took a very realistic viewpoint.  Absolute space and absolute time “really” did exist even though they could not be directly observed.&lt;br /&gt;&lt;br /&gt;Galileo, on the other hand, proposed that all motion is relative, meaning that you can only define motion as an observable change in the distance between objects.  In 1632 Galileo published the &lt;em&gt;Dialogue Concerning the Two Chief World Systems&lt;/em&gt;, in which he compared Ptolemy’s astronomical model, that positioned the Earth at the center of the Universe, with the heliocentric model of Copernicus.  One of the chief objections against Copernicus’s model was that if the Earth really does move, how come we do not feel it moving?  To counter this argument, Galileo noted that when down in the hold of a ship on a quiet sea, that it was impossible to tell if the ship was moving under sail or anchored at rest by simply performing physical experiments, like throwing balls or watching the drips from a dripping bottle fall into a basin.  For Galileo, there was no such thing as absolute motion relative to some absolute and fixed space. Galileo’s concept of relative motion was carried forward further by Gottfried Leibniz, a contemporary and strident rival of Newton, who fervently claimed that there was no such thing as an absolute space that could not be observed; there was only relative motion between objects, and absolute space was a fantasy of our common sense.  So Galileo and Leibniz took a very positivistic view of space, while Newton took the position of a realist.&lt;br /&gt;&lt;br /&gt;The reason you do not feel the motion of the Earth as it orbits the Sun and revolves upon its axis is that, for the most part, you are moving in a straight line at a constant speed. For example, the Earth takes about 365 days to orbit the Sun and complete a full 360° revolution about it. So that comes to about 1 degree/day. The width of your index finger at arm’s length also subtends an angle of about 1°. Now imagine being able to drive a car all day long in a straight line at 66,660 miles/hour, and find that at the end of the day, you have only deviated from your desired straight line path by the width of your index finger at arm’s length, when you look back at your starting point! Most of us would likely congratulate ourselves on being able to drive in such a straight line. Because the circumference of the Earth’s orbit is over 584 million miles and it takes 365 days to cover that distance, the Earth essentially moves in a straight line over the course of a single day to a very good approximation.  And the same can be said of your motion as the Earth turns upon its axis.  This motion has a tighter radius of curvature, but at a much lower tangential velocity, so again your acceleration is quite small and you do not detect it.&lt;br /&gt;&lt;br /&gt;In 1905 Einstein extended Galileo’s idea that you cannot tell if you are moving in a straight line at a constant speed, or standing still using experimental devices, by extending this idea of relative motion to electromagnetic experiments as well.  With that, Einstein was able to derive the special theory of relativity using simple high school mathematics.  In &lt;a href="http://softwarephysics.blogspot.com/2007/12/is-information-real.html"&gt;&lt;/a&gt;&lt;a href="http://softwarephysics.blogspot.com/2007/12/is-information-real.html"&gt;&lt;a href="http://softwarephysics.blogspot.com/2007/12/is-information-real.html"&gt;Is Information Real?&lt;/a&gt;&lt;/a&gt; we noted Einstein’s strong adherence to a positivistic approach to a relative space and time versus Newton’s concept of an absolute space and time. In Einstein’s original conceptualization of relativity, he only dealt with observable phenomena like the ticking of light clocks, the paths and timings of light beams, and the lengths of objects measured directly with yard sticks. Einstein did not make any reference to an absolute space or time that we presume exists, but which we cannot directly measure as did Newton in his &lt;em&gt;Principia&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;In the 1830s, Michael Faraday began conducting a series of electrical and magnetic experiments, and came up with the idea of fields. Take a bar magnet and cover it with a piece of paper. Then sprinkle some iron filings over it. The “lines of force” that you see are a field. Faraday called it a field because it reminded him of a freshly plowed farmer’s field. At each point on the paper, the magnetic force from the underlying magnet has a certain strength and a certain direction which define the magnetic field of the magnet. Now Faraday thought that the electric and magnetic fields that he observed were “real”, but the French thought that his fields were just a mathematical contrivance. The French thought that to calculate the effects from a collection of charged objects and current carrying wires, you should pick a point in space and then use the formulas developed by the French physicists Ampere and Coulomb to calculate the strength and direction of the resulting magnetic and electrical forces. The French were quite happy with the positivistic concept of electric and magnetic forces as being an “action at a distance”, the same concept used by Newton for the gravitational force in his &lt;em&gt;Principia&lt;/em&gt;.  There was another problem though; these spooky “action at a distance” forces had to travel with an infinite velocity. Imagine the Earth as it orbits the Sun at 66,660 miles/hour.  Since Newton’s gravitational force depends upon the exact distance between the Sun and the Earth, which is constantly changing for an elliptical orbit, if the gravitational force traveled with a finite speed, then the gravitational force from the Sun would have to lead the Earth, like a hunter firing on a flock of ducks flushed from the reeds. How would the Sun know where to shoot the gravitational force in advance and with the correct strength to hit the Earth squarely in mid-flight if the gravitational force traveled at less than an infinite speed? &lt;br /&gt;&lt;br /&gt;Faraday, on the other hand, felt that electrical charges and current carrying wires created real fields in space, and that charged objects then interacted with these surrounding fields. This idea could also be extended to the gravitational force as well, and eliminate the mysterious “action at a distance” problem. The Sun creates a strong gravitational field that extends out to the Earth, and the Earth interacts with the gravitational field as it orbits the Sun. The idea of electric and magnetic fields being “real” was further bolstered in 1864 when James Clerk Maxwell published &lt;em&gt;A Dynamical Theory of the Electromagnetic Field&lt;/em&gt;, in which he unified the electric and magnetic forces into a single combined electromagnetic force. Maxwell demonstrated that a changing magnetic field could create an electric field and that, similarly, a changing electric field could create a magnetic field. This meant that electric and magnetic fields could break free of charged objects and currents in wires and propagate through space as a self-propagating wave. If you wiggle a charged object back and forth, electromagnetic waves peel off. This is how the oscillating electrons in a radio antenna send out radio waves and the electrons jumping around within atoms send out light. The velocity of the electromagnetic wave came out to be:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#95;&amp;#95;&amp;#95;&amp;#95;&lt;br /&gt;v&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;1/&amp;#8730;&amp;nbsp;&amp;#956;&amp;#949;&lt;br /&gt;&lt;br /&gt;v = 3 x 10&lt;sup&gt;8&lt;/sup&gt; m/sec the speed of light!&lt;br /&gt;&lt;br /&gt;This was truly a remarkable result.  The constant &amp;#956; is measured by observing the strength of the magnetic field surrounding a current carrying wire, and the constant &amp;#949; is measured by observing the voltage across a charged capacitor.  Both &amp;#956; and &amp;#949; seem to have nothing to do with light, yet  the speed of light easily falls out from a simple relationship between the two, derived from a wave equation featuring both constants.  This added credence to Faraday’s idea that electromagnetic fields were, indeed, real tangible things, and Maxwell’s prediction of electromagnetic waves further strengthened the reality of electromagnetic fields in 1886, when Heinrich Hertz was able to generate and detect electromagnetic radio waves. But even with the findings of Hertz, all that we know is that when we jiggle electrons on one side of a room, we make electrons on the other side of the room jiggle as well. Does that mean that there is a real electromagnetic wave involved? Fortunately, we can refine our experiment with the aid of a microwave oven. Open your microwave oven and remove the rotating platter within. Now get a small Espresso coffee cup and commit the ultimate Starbucks sin, heat a small cup of cold coffee in the microwave at various positions within the oven. What you will find is that at some locations in the oven, the coffee gets quite hot, and at others it does not. So what is happening? In the classical electrodynamics of Maxwell, there is a microwave standing wave within the oven. If you are fortunate enough to place your Espresso cup at a point in the microwave oven where the standing wave is intense, the coffee will heat up quite nicely. If you place the Espresso cup at a node point where the standing microwave is at a minimum, the coffee will not heat up as well. That is why they put the rotating platter in the microwave oven. By rotating objects in the oven, the objects pass through the hot and cold spots of the standing electromagnetic microwave and are evenly heated. So this is pretty convincing evidence that electromagnetic waves really do exist, even for a positivist.&lt;br /&gt;&lt;br /&gt;But now let us look at this same experiment from the point of view of quantum mechanics and QED. If you have been paying attention, you might have noticed that our microwave oven is simply a physical implementation of the famous “particle in a box” we discussed previously in &lt;a href="http://softwarephysics.blogspot.com/2007/12/quantum-software.html"&gt;Quantum Software&lt;/a&gt;. The only difference is that we are using microwave photons in our box instead of electrons. Now according to quantum mechanics and QED, the reason that the coffee in the Espresso cup got hotter in some spots and less hot in others is that the probability of finding microwave photons at certain spots in the oven is greater than finding them at other spots based upon the square of the amplitude of the wavefunctions &amp;#936; of the photons. But remember, in the Copenhagen interpretation of quantum mechanics, the wavefunctions &amp;#936; of particles and photons are not “real” waves, they are only probability waves – just convenient mathematical constructs that don’t “really” exist, similar to the electromagnetic waves of the mid-19th century that did not “really” exist either.&lt;br /&gt;&lt;br /&gt;Another example of the clash between positivism and realism comes from the very beginnings of quantum mechanics.  According to classical electrodynamics, the walls of the room in which you are currently located should be at a temperature of absolute zero, having converted all of the energy of the free electrons in the walls of the room into ultraviolet light and x-rays. This was known as the “Ultraviolet Catastrophe” at the end of the 19th century, and is another example of an effective theory bumping up against the limitations of its effective range of reliable prediction. In 1900, Max Planck was able to resolve this dilemma by proposing that the energy of the oscillating electrons in the walls of your room was quantized into a set of discrete integer multiples of an elementary unit of energy E = hf.&lt;br /&gt;Thus:&lt;br /&gt;&lt;br /&gt;E = nhf &lt;br /&gt;&lt;br /&gt;where&lt;br /&gt;n= 1, 2 , 3,…&lt;br /&gt;h = Planck’s constant = 4.136 x 10&lt;sup&gt;-15&lt;/sup&gt; eV sec&lt;br /&gt;f = frequency of the electron oscillation&lt;br /&gt;&lt;br /&gt;Max Planck regarded his inspiration/revelation of the quantization of the oscillation energy of the free electrons and their radiated energy as a mathematical trick to overcome the Ultraviolet Catastrophe. But in 1905, the same year that he published the special theory of relativity, Einstein proposed that Planck’s discovery was not a mathematical trick at all. Einstein proposed that sometimes light, an electromagnetic wave in classical electrodynamics, could also behave like a stream of “real” quantized particles, that we now call photons, with energy:&lt;br /&gt;&lt;br /&gt;E = hf&lt;br /&gt;&lt;br /&gt;Although Einstein took a very positivistic position in his development of the special theory of relativity, he was a true realist at heart who could never quite accept the very positivistic Copenhagen interpretation of quantum mechanics.  In 1927, Niels Bohr and Werner Heisenberg proposed a very positivistic interpretation of quantum mechanics now known as the Copenhagen interpretation; 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. This satisfies Max Born’s contention that wavefunctions are just probability waves.  Einstein had a hard time with the Copenhagen interpretation of quantum mechanics because he thought that it verged upon solipsism. Solipsism is a philosophical idea from Ancient Greece. In solipsism, you are 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 &lt;em&gt;Is it enough that a mouse observes that the Moon exists?&lt;/em&gt;.   Einstein’s rejection of the Copenhagen interpretation is rather interesting. Recall that in &lt;a href="http://softwarephysics.blogspot.com/2007/12/is-information-real.html"&gt;&lt;a href="http://softwarephysics.blogspot.com/2007/12/is-information-real.html"&gt;Is Information Real?&lt;/a&gt;&lt;/a&gt; we saw that Einstein’s original interpretation of the special theory of relativity (1905) was very positivistic, since he relied solely upon what could be observed with meter sticks and clocks, and totally rejected Newton’s concepts of absolute space and time because they could not be physically observed. Despite this, Einstein was a true realist at heart. In his elder years, Einstein held many profound philosophical debates with Bohr on the topic of quantum mechanics, since Einstein could not accept the extreme positivism of the Copenhagen interpretation of quantum mechanics, which held that only the observations of things really existed and not the things themselves. In the Copenhagen interpretation of quantum mechanics, the wavefunctions or probability clouds of electrons surrounding an atomic nucleus are just that, potential electrons waiting to be measured.&lt;br /&gt;&lt;br /&gt;Because Einstein detested the Copenhagen interpretation of quantum mechanics so much, he published a paper in 1935 with Boris Podolsky and Nathan Rosen which outlined what is now known as the EPR Paradox. The EPR Paradox goes like this. Suppose we prepare two quantum mechanically “entangled” electrons that conserve angular momentum; one with spin up and one with spin down. Now let the two electrons fly apart and let two observers measure their spins. If observer A measures his electron with spin up, then observer B must measure his electron with spin down with a probability of 100% in order to conserve angular momentum. Now there is nothing special about the directions in which observers A and B make their spin measurements. Suppose observer A rotates his magnets by 90&lt;sup&gt;0&lt;/sup&gt; to measure the spin of his electron and observer B does not. Then observer B will only have a 50% chance for his electron having a spin that is down. How does the electron at observer B know that observer A has rotated his magnets when the electron arrives at observer B? Einstein thought that the EPR paper was the final nail in the coffin of quantum mechanics. There had to be some “hidden variables” that allowed electrons to know if they “really” had a spin up or spin down. You see, for Einstein, absolute reality really existed.  For Einstein, the apparent probabilistic nature of quantum mechanics was an illusion, like the random() function found in most computer languages. The random() function just points to a table of apparently random numbers that are totally predictable if you look at the table in advance. You normally initiate the random() function with a “seed” from the system clock of the computer you are running on to simulate randomness by starting at different points in the table.&lt;br /&gt;&lt;br /&gt;However, in 1964 John S. Bell published a paper in which he proposed an experiment that could actually test the EPR proposition. In the 1980s and 1990s a series of experiments were indeed performed that showed that Einstein was actually wrong. Using photons and polarimeters, instead of the spin of electrons, these experiments showed that photons really do not know their quantum states in advance of being measured and that determining the polarization of a photon by observer A can immediately change the polarization of another photon 60 miles away. These experiments demonstrated that the physical Universe is non-local, meaning that Newton’s spooky “action at a distance” is built into our Universe, at least for entangled quantum particles. This might sound like a violation of the special theory of relativity because it seems like we are sending an instantaneous message faster than the speed of light, but that is really not the case. Both observer A and observer B will measure photons with varying polarizations at their observing stations separated by 60 miles. Only when observer A and observer B come together to compare results will they realize that their observations were correlated, so it is impossible to send a message with real information using this experimental scheme. Clearly, our common sense ideas about space and time are still lacking, and so are our current effective theories.&lt;br /&gt;&lt;br /&gt;From all of the above we can see that the ongoing philosophical clash between positivism and realism in physics has a lot at stake, so let us return to the positions presented in &lt;em&gt;Dreams of a Final Theory&lt;/em&gt; and &lt;em&gt;The Grand Design&lt;/em&gt; to see how they deal with it in the search for a Final Theory.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Case For Realism&lt;/strong&gt;&lt;br /&gt;In &lt;em&gt;Dreams of a Final Theory&lt;/em&gt; in the chapter &lt;em&gt;Against Philosophy&lt;/em&gt;, Weinberg goes on with a discussion of the negative impact of positivism on physics.  Although positivism did help Einstein to break free of an absolute space and time that could not be directly observed and also helped Heisenberg formulate his version of quantum mechanics that only dealt with observable quantities, and which ultimately led to the Heisenberg Uncertainty Principle, Weinberg finds that positivism in total has done far more harm to physics than good. He points to the extreme positivism of Ernst Mach at the turn of the 20th century that suppressed the idea that atoms and molecules were real things and which retarded the acceptance of Boltzmann’s statistical mechanics (see &lt;a href="http://softwarephysics.blogspot.com/2007/11/demon-of-software.html"&gt;The Demon of Software&lt;/a&gt; for more on that).&lt;br /&gt;&lt;br /&gt;To further this point, Weinberg describes the misfortunes of Walter Kaufmann.  In 1897 both J. J. Thomson and Walter Kaufmann were experimenting with cathode rays in evacuated glass tubes.  A cathode ray is really a stream of energetic electrons, but the idea of an electron was an unknown concept back in 1897.  Using an electric field between two parallel charged plates and a pair of magnets, J. J. Thomson was able to deflect the path of the electrons on their way to hitting a fluorescent screen.  With these measurements he was able to calculate the charge to mass ratio of the particles in the cathode rays and found that the likely mass of these particles was much less than that of atoms, so J. J. Thomson took a leap and concluded that the particles in cathode rays must be some kind of constituent part of atoms.  J. J. Thomson is thus credited with the discovery of the electron, the first fundamental particle discovered by mankind.  However, Walter Kaufmann in Berlin performed a very similar set of experiments months earlier than J. J. Thomson and even came up with a more accurate value for the charge to mass ratio of electrons than did J. J. Thomson.  But Kaufmann was a positivist and could not bring himself to believe that he had discovered a fundamental particle that was a constituent part of atoms, since he did not even believe in atoms in the first place, because they could not be directly observed.  Weinberg justly comments:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;What after all does it mean to observe anything?  In a narrow sense, Kaufmann did not even observe the deflection of cathode rays in a given magnetic field; he measured the position of a luminous spot on the downstream side of a vacuum tube when wires were wound a certain number of times around a piece of iron near the tube and connected to a certain electric battery and used accepted theory to interpret this in terms of ray trajectories and magnetic fields.  Very strictly speaking, he did not even do that: he experienced certain visual and tactile sensations that he interpreted in terms of luminous spots and wires and batteries.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yPSJ2-AOMFU/TUNNm20PoRI/AAAAAAAAAQk/oY1DjmRBsnM/s1600/CathodeRayTube.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_yPSJ2-AOMFU/TUNNm20PoRI/AAAAAAAAAQk/oY1DjmRBsnM/s400/CathodeRayTube.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5567378894305075474" /&gt;&lt;/a&gt;&lt;p style="text-align: center; line-height:140%; font-size:120%"&gt;Figure 1 – J.J. Thomson’s Experimental Cathode Ray Tube &lt;/p&gt;&lt;p style="line-height:140%; font-size:120%"&gt;In the chapter &lt;em&gt;Quantum Mechanics and its Discontents&lt;/em&gt;, Weinberg portrays a very interesting hypothetical dialogue between Charles Dickens’ Scrooge and Tiny Tim.  In this hypothetical discussion, the realist Scrooge debates the reality of the quantum wavefunction with the positivist Tiny Tim.  Scrooge maintains that quantum wavefunctions are just as real as anything else in this strange quantum world of ours, while Tiny Tim adheres to the positivistic Copenhagen interpretation of quantum mechanics that holds that wavefunctions are just mathematical devices that only produce probabilistic predictions of what is observed, so that wavefunctions themselves are not really real (see &lt;a href="http://softwarephysics.blogspot.com/2007/12/quantum-software.html"&gt;Quantum Software&lt;/a&gt; and &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt; for more details).&lt;br /&gt;&lt;br /&gt;Weinberg finds merit in both positions, but in the end, sides with the realist Scrooge.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Scrooge: …It is true enough that the electron does not have a definite position and momentum at the same time, but this just means that these are not appropriate quantities to use in describing the electron.  What an electron or any collection of particles does have at any time is a wave function.  If there is a human observing the particles, then the state of the whole system including the human is described by a wave function.  The evolution of the wave function is just as deterministic as the orbits of particles in Newtonian mechanics.&lt;br /&gt; &lt;br /&gt;Tiny Tim: …The wave function has no objective reality, because it cannot be measured … All that we ever measure are quantities like positions or momenta or spins, and about these we can predict probabilities.  And until some human intervenes to measure these quantities, we cannot say that the particle has any definite state at all.&lt;br /&gt;&lt;br /&gt;Scrooge: … Wave functions are real for the same reason that quarks and symmetries are – because it is useful to include them in our theories.   Any system is in a definite state whether any humans are observing it or not; the state is not described by a position or a momentum but by a wave function.&lt;br /&gt;&lt;br /&gt;Tiny Tim: …Let me just remind you of a serious problem you get into when you imagine the wave function to be real.  This problem was mentioned in an attack on quantum mechanics by Einstein at the 1933 Solvay Conference in Brussels and then in 1935 written up by him in a famous paper with Boris Podolsky and Nathen Rosen.  Suppose that we have a system consisting of two electrons, prepared in such a way that the electrons at some moment have a known large separation and a known total momentum….&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Tiny Tim then goes on to outline the EPR Paradox described above.  But Scrooge does not have a problem with the EPR Paradox:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Scrooge: I can accept it…..(While you were at it, you might have mentioned that John Bell has come up with even weirder consequences of quantum mechanics involving atomic spins, and experimental physicists have demonstrated that the spins in atomic systems really do behave in the way expected from quantum mechanics, but that is just the way the world is.) It seems to me that none of this forces us to stop thinking of the wave function as real; it just behaves in ways that we are not used to, including instantaneous changes affecting the wave function of the whole universe.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;In the chapter &lt;em&gt;Tales of Theory and Experiment&lt;/em&gt; Weinberg points out that one of the dangers of positivism is its overreliance upon observation and experimentation.  In &lt;a href="http://softwarephysics.blogspot.com/2007/09/how-to-think-like-scientist.html"&gt;How To Think Like A Scientist&lt;/a&gt;, I highlighted how the old miasma theory of disease, the theory that diseases are caused by foul smelling air, had a lot of supporting empirical evidence.  People who lived near foul smelling 19th century rivers in England were more prone to dying of cholera than people who lived further from the rivers, and we had death certificate data to prove that empirical fact.  Weinberg uses the example of Einstein’s general theory of relativity to drive home his point (see &lt;a href="http://softwarephysics.blogspot.com/2007/12/cyberspacetime.html"&gt;Cyberspacetime&lt;/a&gt;).  In Newtonian mechanics a single planet, all by itself with no sister planets, should orbit the Sun in an ellipse that never changes its orientation.  The major axis of the ellipse, the length of its oblong dimension, should always point in the same direction like a compass needle.  However, because the other planets of the solar system tug on the elliptical orbit of Mercury, it is found that the major axis of Mercury’s orbit actually precesses or slowly rotates by 575 seconds of arc every century.  That means over a period of 225,000 years the orbit of Mercury makes one full rotation like a slowly spinning egg.  The problem was that the Newtonian theory of gravity predicted that the tugs on Mercury’s orbit from the other planets should only add up to 532 seconds of arc every century, leaving 43 seconds per century unexplained.  When Einstein applied his new general theory of relativity to the problem in 1915, he immediately saw that it predicted the additional precession of 43 seconds per century from the Sun’s gravitation alone.  Newton’s theory of gravitation is based upon a linear equation, where a small change to the mass of the Sun simply makes a proportionally small change to its gravitational field, while Einstein’s general theory of relativity is framed in terms of nonlinear differential equations.  The gravitational field of the Sun has an energy, and since in Einstein’s theory spacetime is deformed by both mass and energy, there is a nonlinear positive feedback loop between the energy in the gravitational field and the gravitational field itself – they both feed off of each other, leading to planets precessing.  Weinberg calls Einstein’s finding a retrodiction, meaning that his new theory very accurately produced a result that matched a baffling astronomical observation already in existence.  Surprisingly, this retrodiction did not completely convince a skeptical physics community of the validity of the general theory of relativity.  That did not happen until 1919, when a group of astronomers used a total eclipse of the Sun to search for a prediction that the general theory of relativity made.  The general theory of relativity predicts that light from a distant star passing close to the Sun during a total eclipse will be deflected by the Sun because the light will pass through the distorted spacetime surrounding the Sun.  So all you have to do is make a photographic plate of a group of stars 6 months before the total eclipse and then compare the positions of the same stars in a plate taken during the total eclipse.  The stars closest to the blocked-out Sun should shift in position due to the bending of their light as it passes close to the Sun.  But these shifts are quite small.  A grazing star should only shift by 1.75 seconds of arc during a total eclipse.  The width of your index finger at arm’s length subtends about 1&lt;sup&gt;0&lt;/sup&gt; which is 3,600 seconds of arc, so 1.75 seconds is quite small indeed.  However, the 1919 expeditions did indeed report observing such small shifts to within a 10% accuracy of Einstein’s prediction, and this made Einstein and his general theory of relativity an overnight sensation.  However, the observations from several subsequent total eclipses of the Sun in the ensuing years did not find such stunning results.  Some even found deflections that appeared to disagree with the general theory of relativity.  After all, it is not easy to make such delicate observations.  You have to compare photographic plates that were taken at different times, and perhaps with different equipment.  So as in all the experimental and observational sciences, corrections must be applied to account for the limitations of observations performed with real-life error-prone physical devices.  The focus of the telescope may have not been exactly the same for both plates and plates can shrink or expand with temperature differences that might have occurred when the two observations were made.  Experimentalists always try to do a good job of applying these corrections, but Weinberg suspects that in the heat of the moment, experimentalists sometimes subconsciously fall prey to MICOR – Make It Come Out Right.  They subconsciously keep applying corrections to their data until it fits the findings of a new theory.  Weinberg argues that it is much harder to bend the mathematics of a new theory to match already existing unbiased experimental observations, than it is to “correct” experimental data until it matches a new theory.  Consequently, the retrodictions of a new theory are a much better way to validate a new theory than its ability to make predictions of observations never before made.&lt;br /&gt;&lt;br /&gt;The end result is that one must always keep in mind the limitations imposed by observations in the real-world, especially now that some of the most promising theories of physics, like supersymmetric string theory, seem to have overtaken our technological capabilities by many orders of magnitude, and most likely we will never be able to obtain the necessary energies to validate them.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Case For Model-Dependent Realism&lt;/strong&gt;&lt;br /&gt;Model-dependent realism maintains that there is no absolute reality after all.  We can only hope for a collection of effective theories that present a series of models of reality that are confirmed by empirical observation, and each of these models essentially creates a reality of its own.  In &lt;em&gt;The Grand Design&lt;/em&gt; the authors explain it this way:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;In physics, an effective theory is a framework created to model certain observed phenomena without describing in detail all of the underlying processes… Similarly, we cannot solve the equations governing the behavior of complex atoms and molecules, but we have developed an effective theory called chemistry that provides an adequate explanation of how atoms and molecules behave in chemical reactions without accounting for every detail of the interactions.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Because we only have a collection of effective theories, we cannot be certain that an absolute reality even exists.  To illustrate this point they turn to the analogy of a goldfish living in a curved goldfish bowl.  The goldfish could certainly make observations of moving bodies outside of the goldfish bowl, but due to the distortion caused by light refracting into the curved goldfish bowl, the effective theories that the goldfish would come up with would be very complicated indeed.  For the goldfish, a freely moving body would not travel in a straight line, but with enough mathematics, the goldfish could certainly come up with a modified version of Newtonian mechanics that could predict the path of freely moving objects and of objects subjected to a driving force as seen from within the goldfish bowl.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;If a goldfish formulated such a theory, we would have to admit the goldfish’s view as a valid picture of reality.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;In a further analogy, that comes quite close to what we see with software running in the Software Universe, they go on to explain that if our observations of the physical Universe were really only the observations of an alien computer simulation that we were all caught up in, like in &lt;em&gt;The Matrix&lt;/em&gt;, how could we possibly distinguish true reality from a simulated reality?  Their conclusion is:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;These examples bring us to a conclusion that will be important in this book: There is no picture – or theory-independent concept of reality.  Instead we will adopt a view that we will call model-dependent realism: the idea that a physical theory or world picture is a model (generally of a mathematical nature) and a set of rules that connect the elements of the model to observations.  This provides a frame-work with which to interpret modern science.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;em&gt;According to model-dependent realism, it is pointless to ask if a model is real, only whether it agrees with observation.  If there are two models that agree with observation, like the goldfish’s picture and ours, then one cannot say that one is more real than another.  One can use whichever model is more convenient in the situation under consideration.  For example, if one were inside the bowl, the goldfish’s picture would be useful, but for those outside, it would be very awkward to describe events from a distant galaxy in the frame of a bowl on earth, especially because the bowl would be moving as the earth orbits the sun and spins on its axis.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;According to the idea of model-dependent realism introduced in Chapter 3, our brains interpret the input from our sensory organs by making a model of the outside world.  We form mental concepts of our home, trees, other people, the electricity that flows from wall sockets, atoms, molecules, and other universes.  These mental concepts are the only reality we can know.  There is no model-independent test of reality.  It follows that a well-constructed model creates a reality of its own.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Steven Weinberg is a master of quantum field theory and is  famous for combining the electromagnetic and weak interactions into a single electroweak interaction, and that is why he is a credible advocate for pursuing a Final Theory for an absolute reality.  However, let us try to extend model-dependent realism to quantum field theory as well.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt; we discussed quantum field theories.  In quantum field theories all the particles and forces we observe in the Universe are modeled as fields that extend over the entire universe with varying amplitudes that define the probability of observing the fields as a quantized particle.  Thus there are matter fields like electron fields, quark fields, and neutrino fields along with the force fields like the electromagnetic field, the weak field and the strong field.  When you observe one of the matter fields, a quantized particle pops out like an electron, neutrino, or a clump of quarks in a meson or in a hadron particle like a proton or neutron.  Similarly, when you observe a force carrying field you observe the photon of the electromagnetic force, the W&lt;sup&gt;+&lt;/sup&gt;, W&lt;sup&gt;-&lt;/sup&gt; or Z&lt;sup&gt;0&lt;/sup&gt; bosons of the weak force, or the gluons of the strong force.  In quantum field theories, the forces or interactions between matter particles (fermions) are modeled as exchanges of force-carrying particles (bosons).  Thus the repulsive electromagnetic interaction or force between two electrons scattering off each other is depicted as an exchange of virtual photons between the two.&lt;br /&gt;&lt;br /&gt;The very first quantum field theory, quantum electrodynamics – QED, matured in 1948 when all the pesky infinities were removed with a mathematical process called renormalization.  With QED it became possible, at least theoretically, to explain all of the possible interactions between electrons, protons, and photons, and consequently, all of the things that you encounter in your daily life that deal with the physical and chemical properties of matter, such as the texture of objects, their colors, hardness, ductility, tensile strengths and chemical activity.  One of the things that QED could not explain was why the Sun shines.  To explain why the Sun shines, we need an interaction that can turn protons into neutrons, as the Sun fuses hydrogen nuclei composed of a single proton into helium nuclei composed of two protons and two neutrons.  Since a proton is composed of two up quarks and one down quark, while a neutron is composed of one up quark and two down quarks, we need an interaction that can turn up quarks into down quarks and that is exactly what the weak interaction or force can do.  In 1967 Steven Weinberg proposed a model that combined the electromagnetic and weak interactions, which predicted the Higgs boson and the Z&lt;sup&gt;0&lt;/sup&gt; boson, and is now known as the electroweak interaction.  Thus, the electroweak interaction can explain all of QED, and why the Sun shines, all at the same time.&lt;br /&gt;&lt;br /&gt;Now depicting the electromagnetic force as the exchange of virtual photons might seem a bit farfetched to you, since you have no first-hand experience with quantum effects, so let us repeat an experiment that Michael Faraday might have performed 170 years ago to help us out of this jam. Grab two small styrofoam packing peanuts from your last online purchase. Using a needle and thread, attach each packing peanut to the ends of the thread, and then rub the two packing peanuts in your hair to have them pick up some extra electrons. Now hold the thread in its middle, so that the packing peanuts are free to dangle straight down. You will observe a very interesting thing, instead of dangling straight down, the packing peanuts will repel each other, and the thread will form a &amp;#923; shape. Now stare at that for a few minutes. This will, no doubt, not seem so strange to you because you do have some experience with similar electrical effects, but think about it for a few minutes anyway. Something very strange, indeed, is going on. The whole mass of the Earth is trying to pull those two packing peanuts straight down, but some mysterious thing, which apparently is much stronger, is keeping them apart. What could it be? Coulomb would borrow Newton’s idea of a “spooky action at a distance” to explain that there is an electrical force between the charged packing peanuts, and that the electrical force is keeping them apart. In fact, given the amount of charge on the peanuts, the mass of each peanut, and the total length of the thread, Coulomb would be able to exactly predict the angle of the &amp;#923; shape formed by the thread and the dangling packing peanuts. So Coulomb’s model is quite useful in making predictions despite using a “spooky action at a distance”. Michael Faraday would go one step further. In Faraday’s model, each charged packing peanut creates an electric field about itself, and the other charged packing peanut then interacts with the electric field by moving away from it. Faraday’s model not only predicts the angle of the packing peanuts, it can also be used to derive the speed of light as we saw above, so Faraday’s model is even more useful than Coulomb’s. With QED we can model the behavior of the packing peanuts to be the result of the exchange of a huge number of virtual photons. QED makes all of the predictions that Coulomb’s and Faraday’s models make, and in addition, as we saw in &lt;a href="http://softwarephysics.blogspot.com/2008/02/foundations-of-quantum-computing.html"&gt;The Foundations of Quantum Computing&lt;/a&gt; by using 72 Feynman diagrams, can predict the gyromagnetic ratio of the electron to 11 decimal places.  With QED we can also formulate the basis of all chemical reactions as approximations of QED.  Finally, with the unified electroweak quantum field theory of Steven Weinberg we can even explain why the Sun shines in addition to all of the above.&lt;br /&gt;&lt;br /&gt;So which is it? Are the packing peanuts being held apart by Coulomb’s “spooky action at a distance”, Faraday’s electric field, QED’s exchange of virtual photon
