We do not have this ability as yet, though we are moving towards it. At best, we can link our files together into a network, letting the user move across that network with a minimum of keystrokes. Here we present one way of achieving such a network.
In short, although everything is still stored as files, you need not worry about files as labeled bins for data. Your files are collections of data rather than simple bins, organizing themselves into structures of related information. The data you need is never more than a few TAB's and ENTER's away.
TAB | F3 key | scans to next computer command |
ENTER | F4 key | executes the command - regardless of what it does |
ESCape | F5 key | steps you back through files |
MAP | F2 key | lets you access an outline menu of your files |
->filename | file icon / object |
A>program | program icon |
=> | place holder |
1:15 | time (a place holder for schedules) |
____ | blank fields |
T>555-1212 | telephone icon |
[-] ]/[ | switches (designed for NASA) |
< word | word to sent to host (telecom or pop-up) |
<< line | line to send to host (telecom or pop-up) |
Other special purpose icons may be devised as needed All icons may be entered via the keyboard and placed anywhere in the data by the user.
As you use this system you automaticaly organize your files into a network based upon the way YOU use your data.
The essence of hypermedia is simply the ability to access information in a non-linear way - letting the user select what he or she wants to see next, and doing so WITHOUT remembering or typing file names or elaborate commands.
The simplest way of accessing files is to let the user link them together and travel his links. After all, he knows how he wants to use his files. Don't make him fight your product to do so.
This technique treats file names as typed icons, giving your program an "object oriented" flavor.
Saving the file relieves your user's fear that through some error, he may lose his data. More important, since the act of creating a new file requires that the user type the file name in an existing file, your program will now save the existing file, saving that link to the new file. This makes sure your user has a quick way of finding his way around his files.
It all becomes like one of those adventure games, where you move around in the rooms of a huge cave - a cave YOU build of YOUR OWN information! That's why Hypermedia is so exciting!
Since every glance away from the screen is a minor distraction, our technique is to dedicate a key, such as the TAB key or the F3 key, to cause the computer to scan the cursor for the next designated file name in the data. We use a standard mark, "->" to designate a word as a file name.
Once the computer can find the next command for him, your user doesn't need to read the screen, YOUR USER DOES NOT EVEN NEEDO KNOW WHAT A COMMAND LOOKS LIKE!
Treat complex commands in a similar manner - let your user embed commands anywhere in the file, (or a pop-up cheat-sheet,) then use them over and over by TABing to a command and ENTERing it. Your user teaches the program by recording his work as menus. We use the drive letter followed by a greater-than to designate a program. Example: A>quicken
Since your user can help others by simply passing on his files, he recommends your product to anyone he might help. He becomes your product champion - your dedicated salesman. Those files spawn a market for add-on products, each of which suggests more reasons to buy your product! Each advertisement anyone places for an add-on product is a FREE advertisement and a FREE ENDORSEMENT for YOUR product!
Our technique is to push the old file name and cursor position onto a STACK whenever the ENTER key brings up a file. When your user taps the ESCape key, the program retrieves the previous file name from this STACK, and uses it to re-load that file.
With the fear of getting lost gone, your user feels safer with your product than with other products. Especialy by contrast to the other products he must use! If we all use the same keys and symbols, the familiarity helps sell ALL of our products!
You can help your user resume his work by saving this MAP between sessions and restoring the current file from this map as your program comes up.
This MAP gives him the feeling your program is his personal tool. You can allow multiple users on one machine while making each one want his own legitimate copy, by incorporating the serial number or your user's name in the name of the map file.
Diagnostic light: ->red.dia ->yellow.dia ->green.dia
Similarly, it may be used to provide access to specific portions of any large body of information, be it a catalog, repair manual, or program operations manual, etc.
An example is provided in the sample disk.
S>cd d:\tdemo
->
A simple schedule lays out the hours of each day, linking any appointments to the appropriate dossier files. ->
By locking a file so as to limit alterations to specific fields, one may fill in an order form, then have another program process it. The linking feature permits one to attach the form to the clients dossier file(s), pertinent correspondence, etc.
Of course the five and a half year old boy who wandered in on one of our demos had no trouble at all; but then, they never do.
The best part is that to add another command, one only needs to add some simple icon identification code and the code to execute the command. Many of these can be rigged up as DOS commands in the prototyping stage. In fact, a skeletal system is ideal for demonstrating software prototypes, having none of the complexity of Dan Briclyn's Demo program.
->file name file to view A>program name program to execute from disk letter => note tab stop, use for checklist & notes 1:15 tab stop, use for appointment schedule ___ field to fill in T>1-408-779-7649 phone number to dial via modemScanner Key
Sample Code
TAB key: DO Scan to next non-blank advance one character if ">" then identify symbol REPEAT while not symbol OR not end of file Issue symbol identification messageVariations include:
Symbols which do not stop the cursor printer formatting symbols comments Symbols not using ">" as second character time fields data fields fields to fill in
Execution Key
Sample Code
ENTER key: identify symbol IF executable symbol IF file save required THEN save file execute symbol IF file was saved THEN retrieve file Example: ->file icon IF current file altered THEN save file insert empty line into FILE STACK after current line + copy file name and cursor data to empty line advance current position in FILE STACK to new entry locate file on disk IF file not found THEN create blank file in memory ELSE load fileVariations include:
symbols as file names synmbols as program names symbols which do not execute time blank to fill in annotation markESCAPE
Sample Code
ESCAPE key: IF altered, THEN save current file DO IF not first entry in FILE STACK THEN decrement position in FILE STACK copy file name from FILE STACK ELSE BREAK, retaining current file in memory load file REPEAT while file not loadedVariations include:
Quit key: presents other options, quit and execute icon quit and escape quit program
Program Invocation
Sample Code
WHEN PROGRAM INVOKED: load FILE STACK (map) file execute commands at start of FILE STACK file identify last current file load last current file.
Program Termination
Sample Code
WHEN PROGRAM TERMINATED: IF file altered THEN save current file save FILE STACK fileSubroutines required
Above key routines plus: generic symbol identification routine specific symbol typing routines generic symbol execution routine specific symbol execution routines load file save file insert file name into stack retrieve file name from stack (non-destructive) roll back one level in stack display message to user display stack to user as a fileTables required:
symbol characteristic routine to validate specific symbol routine to cute specific symbol
![]() | SOFTWARE GENERAL CORP | ![]() |
Software Simply General |
Software General Corp.
|