Dark1: Arbitrarium: WebPresenter Project<!/TITLE>

WebPresenter

Computer Project
8/2/99
I first came up with the idea for this program when I was discussing the concept of iMacs at the IMAX® with laserist Dr. Bud Mayhem Inc. about a week ago. Both of us thought that iMac terminals could make useful exhibits by implementing some way to make them cycle through a list of noteworthy web pages, either stored on hard disc, or directly accessing the internet. Bud was thinking that having a terminal flash a loop of ChromaDepth enhanced websites would occupy Laser-show patrons as they waited for the next show, and also encourage them to keep the 3-D glasses to take home and explore these sites. Perhaps getting a truck-load of iMacs in the IMAX Dome Theatre at MOSI lobby is far-fetched, but I at the very least that I could try to program something to do the trick of displaying a sequence of URLs in a loop. Perhaps it'll prove useful.

The purpose of WebPresenter.class is to make a small efficient Java Applet that is capable of reading a carriage-return delimited list of web pages, and instruct a java-capable web browser to display them in order, one at a time, with a delay.

This program could be useful in a variety of settings:
  • in business to provide a presentation of HTML 'slides' which could be accessed from any internet capable terminal with Java capabilities
  • in a museum or library setting where web pages themselves could be an exhibits
  • at home to allow one's frequently visited web sites to be cached and displayed automatically, thus saving time online, and allowing more passive web browsing
  • on a home page to make a multi-media slide show


WebPresenter has the following advantages over other methods of presenting web page slide-shows:
  • Platform independence
  • any web pages may be used regardless of their location (local or networked), or the user's ability to edit those pages
  • the list of pages to be displayed can be easily edited using a simple text-editor like BBEdit Lite or SimpleText
  • relatively little processing power is needed. This program is threaded, and even runs in Navigator's slower Java implementation with minumum slowdown on my 180MHz PPC workstation
  • The program does not require that the pages fully load to continue with the display
  • the computer running WebPresenter can run without intervention from keyboard or mouse
  • WebPresenter can be paused using the "||" button
  • WebPresenter loads the file of URLs upon initilization, so most disk activity is limited to when the applet is first started (although, of course, the browser you use may hit the disk during operation)


Here are the more technical specs of WebPresenter.class, and associated classes, version 1b (beta):
  • Required files:

    In order to work properly, WebPresenter.class needs the classes ListReader.class, Detokenizer.class, and Queue.txt. Both ListReader.class and Detokenizer.class are programs that I developed. Queue.txt is a user-customizable file that contains the list of URLs that WebPresenter.class will attempt to instruct your browser to visit.
  • File Format:

    The class ListReader will be instructed by WebPresenter to attempt to read a file named Queue.txt from the same hierarchy as the *.class files (WebPresenter.class, ListReader.class, Detokenizer.class and Queue.txt should all be in the same folder or directory). Queue.txt should be formatted with each entry followed by a carriage-return (\n), the very first entry being the number of entries that follow (i.e. the number of URLs to be displayed in that file, a variable called length). Each following entry should be a valid URL. remember that the final entry MUST be followed by a carriage return. Example
  • Although the applet will only attempt to read the number of lines specified by the first entry, any further entries or text will still be, at some point, loaded into memory. If you choose to store that novel you're working on after your URLs, keep in mind that it may be eating up resources.
  • Detokenizer will be instructed to break the string read out of the Queue.txt file by ListReader into individual entries (by looking for carriage-returns), and will return an array of Strings[]
  • There is currently a 10-second delay between telling the browser to show a new URL.
  • The pause button works by toggling the test condition for a loop ( go = !go; )that does most of the HTML display work in the Applet. So that ending this loop won't stop the thread it runs in, it runs within yet another loop, which also has a 10-second delay built in (otherwise the thread could take lots of time from other apps checking if (running == true) at top speed). Therefore, if you pause the loop, there may be as much as a 10 second delay, and as little as a "0" second-delay in resuming the show.
  • The Applet and the classes it uses still output a great deal of debugging info to the Java console. Take a peek if you want a better idea how the Applet works.
  • The Applet outputs the text "Paused..." and "Running..." as appropriate to the browser status line (in the lower left corner of the window usually). Unfortunately, some browsers over-write that space almost as soon as WebPresenter writes to it, so it may not be that helpful.


Notes and Possible Problems:

This is my first program that I have written and deemed useful enough to release.

WARNING:This is all 'beta' software, and therefore it may be buggy, unreliable, cause your computer to lose data, your cat to catch on fire, break open the seventh seal, lead to self-inflicted hair-loss, or even call you funny names.

Do not use this software if you can't absorb any costs or consequences either related or unrelated to the above mentioned hazards; you use this software entirely at your own risk!


However, I believe that using this software is safe. The worst to happen to my Mac while developing this software was a infinine loop (oops.)--I forced-quit with no harm done.

This software is mine, mine, mine. I reserve all rights to it. You can't have it or reverse-engineer it (especially considering that you're more likely to know how it works that how to reverse-engineer it). Open sourcers and Linux oddities can take a hike.

You can use this software independent of this web page (http://come.to/Dark1) provided that it is for your own personal use, and that you do not distribute it (feel free to give out the URL for this web page thou). Otherwise, I ask that you ask me before using this for corporate, public, or institutional use. If you have a cool use, e-mail me and let me know (dark1@altavista.net), unless it's for hands-free use of 'photography' web sites--it'd be best to keep that to yourself.

WebPresenter--use at own risk