The Java applet consists of three classes: Surfomatic.java, Timeable.java and Timer.java. These classes contain 266, 47 and 636 lines of code respectively. Altogether that's 949 lines of code. Patrick Chan, the author, highlights some of the shortcomings (of the alpha AWT):
I should warn you that the interfaces used by the control panel window are not stable. They currently don't work very well and will be cleaned up by beta.
...
You can change the fetching delay at any time by choosing another delay interval. Surf-o-matic can't detect when a page is finished loading so it simply waits the specified delay and then fetches another page, regardless of whether or not the current page is finished.
...
Bugs: The Surf-o-matic control panel is not laid out very well; there's too much blank space. The awt layout interfaces are broken and so I had to make it big enough so that none of the contents are hidden on the different platforms.
On the other hand, the Tcl applet is implemented as a single source file; autopilot.tcl. It is only 106 lines of code. Tk lays out the user interface widgets quite nicely. The applet is notified when the page load has finished, and only then does it schedule the next random URL to be loaded.
Unfortunately, things are not all rosy :-(. A current bug in SurfIt! intermittently "misses" the end of a document and hence the applet is never notified that the page load has finished. The workaround is to stop both the browser and the applet and then start the applet again.
Author: Steve Ball