image provider

Aquarium Controller


This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.


Everybody has at some point been unable to read a DVD (Digital Video Disc) because it has become too scratched. What you will invent is a new DVD format that for all practical purposes is immune to scratches.


In the DOS (Disk Operating System) days I invented a robust floppy format that Peter Norton used in his backup software. The basic idea was for every n sectors written an extra n+1th was written that was the XOR (exclusive OR) of the others. If any of the sectors in a group could not be read, you could reconstruct it by XORing the others in the group. If you had two unreadable sectors in a group, you were hosed. So I carefully arranged the groups that the most common types of scratches (circular and radial) would not harm more than one sector from a group.

Gandalf Supermodems

The Gandalf Supermodem was the first modem to push 4096Kbs over phone lines. It worked by sending chords for relatively long periods. The receiver used FFT (Fast Fourier Transform) mathematics to recover the notes in the chord. The idea was a blip of noise could not disrupt a relatively long-lasting chord.


The idea is to combine redundancy and spreading the data out thinly. An analogy is you record a mathematical hologram of the data. Any damage hurts the integrity of the bits as a whole, not one spot. So long as the DVD is not hopelessly damaged, a small amount of damage is spread so thinly it does no harm.

To pull this off your DVD drive must have a whacking huge buffer so can read ahead and make corrections without pauses, or you copy the raw bits to a computer and do the analysis there and only start playing once a good chunk has been decoded safely. You might record the audio track in full duplicate on two completely different parts of the disc.

The other thing you might do is create interpolated visual motion to replace unreadable video.

RAM (Random Access Memory) is now much cheaper than it once was and DVDs (Digital Video Discs) are now commonly attached to computers. This lets you spread data much more thinly that has been done in past. This technique would DVDs to be much better for archival backups. Other approaches have focused on improving the chemistry in the DVD itself and would not do much to protect against scratches. On the other paw, a backup DVD lives a privileged life; it is written once then carefully stored, never read and never handled. Scratches are not the most likely mode of failure. DVDs used in libraries and rentals however, get continous rough use so could greatly benefit from the techniques I desribe here. These scratch-shrugging DVDs would also be great for radio stations, since they would always play without hiccups. Further, if a DVD did fail utterly, the disc jockey would get 5 minutes or so warning.

Simpler Implementation

A simpler implementation would be to write the data twice, once on the inner tracks and once on the outer. You would offset the data so that the duplicate were on the opposite side of the disc from the original. Then a radial scratch or a circular scratch would wreck one copy but not the other.

Learning More

papers on error-correcting codes
Computationally efficient error-correcting codes
How to fix a scratched DVD
Reed Solomon error-correcting codes

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number