Scientists predicted, based on a vestigial organ in the human body, that the human genome should contain a broken version of a particular reptile gene.  This predicted gene has now been discovered, in the hidden 'comment' lines of the human genetic code.



Thank you to Science Spot for letting me write a guest journal.  Over the next few days there wil be four of these posts, broken down as follows:

Part 1 - the code of computers

Part 2 - the code of life

Part 3 - why they're similar

Part 4 - and why that's significant


The Code of Computers

(Comment Lines)

Line 1 : Print "Hello World"
Line 2 : Print "Testing"
Line 3 : /*
Line 4 : Print "Testing"
Line 5 : Print "1"
Line 6 : Print "2"
Line 7 : */
Line 8 : Print "3"
Line 9 : Print "Done."

If you run this computer program, it prints on your screen:

Hello World

The reason it does this, is because the thing that reads in the program line by line and decides what to do with the lines (called an "interpreter") knows that it must ignore anything that appears inside the /* and the */

The ignored lines are called "comments" and if you look at a big computer program which has been changed by many different programmers over several years, because their bosses keep changing the requirements of what the program should do, you can use these to trace back the history of the program, from its current working form, to deduce how it started out as a much smaller simpler program, and the path it took with bits being added or commented out, to achieve the present state.




Reverse Engineering

Sometimes, when a program is very successful and the company charges a lot for it, a rival company will create a copy by a process known as "reverse-engineering".  They can't see the source code, but they can see the program in action.  So they set one team to write down a design document, which says precisely what the current version of the program does in practice.  Then they give that design document to a new 'clean' team, who write a new program to exactly match that specification.

Occasionally the original company will sue the rival, claiming that they sent in a mole to steal their source code, and the issue goes to court.  The judge compares the source code of the original to the source code of the rival, and tries to decide if the latter was stolen, or was produced properly by reverse-engineering.  It turns out that this is quite easy for the judge to do because, while the functionality of the programs is identical, when you're able to see the source code, you can look for comments.  The original has a whole baggage of code that used to be functional but is now commented out, while a proper reverse-engineered copy is much cleaner. 

The reverse-engineered copy of our example program at the top would likely be:

Line 1 : Print "Hello World"
Line 2 : Print "Testing"
Line 3 : Print "3"
Line 4 : Print "Done."




Bit Rot

Computer programs are subject to entropy.  People make mistakes when editing them and change bits at random.  If the part that gets changed is vital to the smooth running of the application, then the end users notice, report it as a bug, and it gets fixed (hopefully!).  But if the part that gets changed is in a comment, the error is likely to remain in the code, until such time as the boss says she wants that piece of functionality again, the lines are uncommented, and the poor programmer in charge discovers that they've suffered "bit rot" - they no longer work, and contain errors that were not previously there when he first commented them out.  While individual errors are introduced randomly, the average rate is fairly constant, so if a large enough piece of code was commented out, you can actually make a pretty good estimate of how long ago it was since the code was last in use, by what percentage of the lines now have errors in them.

So, for instance, after being commented out for a few years, the program might look like:

Line 1 : Print "Hello World"
Line 2 : Print "Testing"
Line 3 : /*
Line 4 : Printeger "Tewasp sting"
Line 5 : Printeger "1"
Line 6 : Printeger "2"
Line 7 : */
Line 8 : Print "3"
Line 9 : Print "Done."

It would no longer do what it was intended to do, but if you have a working copy available, you can see how one derived from the other.  You could establish ancestry.


Clairwil (guest journalist)


Continue on to part two.....



A huge thanks to Clairwil for this special series that will walk us through using human genetics to establish ancestry of our species.  For more from Clairwil, or discussion on the topic of evolution, see her new group Debate Evolution vs Creationsim.  It's not just for debate - by reading, you'll learn alot about evolution, genetics and what's new in our scientific understanding of where we came from.

Add A Comment


Oct. 4, 2010 at 8:11 AM

You can read about how Compaq reverse-engineered IBM's personal computer, opening the way to competition and the cheap computers we have today at:

Message Friend Invite

Oct. 4, 2010 at 8:21 AM

From the hacker dictionary:

bit decay /n./

See bit rot. People with a physics background tend to prefer this variant for the analogy with particle decay. See also computron, quantum bogodynamics.

bit rot /n./

Also bit decay. Hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if `nothing has changed'. The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled.

There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with error-detecting circuitry to compensate for them). The notion long favored among hackers that cosmic rays are among the causes of such events turns out to be a myth; see the cosmic rays entry for details.

The term software rot is almost synonymous. Software rot is the effect, bit rot the notional cause.

WikiPedia mentioned various ways that bit rot can actually happen in practice and a google will reveal many interesting war stories of programmers who have come across this: (example) (example).

Message Friend Invite

Oct. 4, 2010 at 9:21 AM

I never heard of bit rot before so I find this post very educational!  Thank you so much for sharing this.


Message Friend Invite (Original Poster)

Oct. 4, 2010 at 12:44 PM

My first time hearing of bit rot. Looking forward to reading more. I enjoy learning new stuff .. Thanks

thank you

Message Friend Invite

Oct. 4, 2010 at 1:03 PM

Very cool!

Message Friend Invite

Oct. 4, 2010 at 3:00 PM

Thanks! Very interesting to read...I look forward to more!

Message Friend Invite

Oct. 4, 2010 at 3:13 PM

Awesome post!

Message Friend Invite

Oct. 4, 2010 at 5:51 PM

I always wonder, though, why any scientific discovery immediately translates to "G-d doesn't exist"? I don't deny evolution, it's right there for us to see, but that doesn't mean that it's not part of an intelligent design.

Anyway, just my 2 cents because the two concepts aren't necesarily contradictory, even ifsome people seem determined to see it that way.


Message Friend Invite

Oct. 4, 2010 at 7:07 PM

Sharon, I didn't notice that discoveries yeild a common theme of God's non-existance?  I only get my science news from a few select places, so I guess it depends on the source as to what the message is.

Thanks for reading this post :)

Message Friend Invite (Original Poster)

Oct. 4, 2010 at 10:17 PM

This is certainly an interesting topic!  I'm looking forward to more. . .

Message Friend Invite

Want to leave a comment and join the discussion?

Sign up for CafeMom!

Already a member? Click here to log in