viznut's amazing discoveries
[2007-04-27]
Creating monoliths for future generations
I'm quite sure that there is eventually going to be another "fall of
Rome", which results in a new round of Dark Ages. The world-wide material
and communicational infrastructure will totally break up, and our level of
technology will regress considerably. We should prepare for this, shouldn't
we?
As a demoscener, I'm sometimes concerned about whether even a single
artifact of our subculture is able to survive this "darkness". The lifetime
of computer storage media is relatively short, so after the great fall, we
may eventually only have some strange pergaments containing second-hand
descriptions of mythical times. Unless, of course, we do something like
this:
- Get a computer program, preferably as tiny as possible. Four kilobytes or
below should be just fine. Compression schemes tend to make even smallest
errors fatal, so make sure that executable compression has not been
applied.
- Also prefer that the program has been written for a platform that is as
popular, simple and low-tech as possible. This increases the probability
that the future generations will be able to reconstruct the platform and
actually run the program.
- Get three huge monoliths and some carving tools.
- Carefully duplicate the binary code of the program on each monolith using
a method that is as error-safe and durable as possible. Three copies
should be enough for redundancy.
- Also include a description of the computing platform. This is another
reason why the platform needs to be as simple as possible.
- Find three safe locations that are remote enough from human populations
and potential natural disasters. Hide the monoliths in these places.
- You have now made future archeologists slightly happier, so you may now
die in piece.
All right, but anyway: when writing VIC-20 or Atari 2600 code, I have a
much stronger feeling of "persistency" than when writing PC code. Even
individual bits tend to have a certain sense of power and durability in
them. On the PC, however, the dependency on immensely complex and
ever-changing operating systems makes the code written for it feel somewhat
weak, temporary and forgettable.