(If you do not see the frame version of this page with a table of contents in the left frame, click here.)

Linking to Another farBook


You can have a farBook stored on a host PC that is visible to the Internet via cable or DSL, and use the information from any other PC having Internet access. farVIEW supports more than one simultaneous user of a farBook, either locally, via a LAN or a shared folder, or remotely, via the Internet, by providing appropriate data locking to preserve information integrity.

This document also discusses farBook exposure to users and how to control it.

Linking to a Remote farBook

You can link to a remote farBook from the command line, or alternately, by creating a topic in your local farBook that names the remote farBook in its Source property field. You can edit the Source property of a topic by clicking on the topic using the right mouse button, then choosing the Properties menu item. This presents the Properties dialog for the topic, which you can edit. You also see an abbreviated version of the Properties dialog when you add a new topic. Currently, there is only one form that you can use, which requires that you know the ip address or URL of the remote farVIEW machine. The form of the link is
For example, if you have an farBook named myBook on your home machine, which has an ip address of and you have set farVIEW running on your home machine to listen on port 5280, you would enter the link into the Source property as
There is no default for any field. Note that if the host computer has a URL, you can use that in place of the ip address.

To use the link while browsing, open the link to the remote farBook by opening the linking topic in the usual way, i.e., by clicking on the topic's icon with the left mouse button. That causes your local farVIEW to connect to the remote farVIEW host, which opens the topic to display the contents of the remote farBook. You browse the contents representing the remote farBook in the normal manner. Note that you will probably experience a slower response from farVIEW than you are normally accustomed when accessing a remote farBook so be patient. When you close the link topic, you close the connection between your local farVIEW and the remote farVIEW.

As I mentioned, you can also use a "far-link" from the command line, but in that case, you will only access the remote farBook, not a local one.

Linking to a Local farBook

farVIEW also supports a local version of the far-link, which is written as
Note that there must be exactly three slashes.

Use this form to link from a remote farBook to another farBook on the same host machine. Your local farVIEW will automatically resolve a local link in a remote farBook to link to the intended remote farBook. If the remote farBook contains a remote far-link to a third machine, your farVIEW guest will connect to the second host machine just as it did to the first host machine.

farVIEW does not yet support remote farBook topics that represent data files on the remote machine. If you have a topic in the remote farBook that identifies, say, a Word document on the host machine, farVIEW does not currently localize the file for you on your local machine. But that ability is required of farVIEW, and I plan to implement it soon. For now, during this early test phase, you are restricted to using the built in editor with text that is within the remote farBook.

Setting up Preferences

Remote farBook hosting requires that you provide the host farVIEW system some information. You will need to add several entries to your host preferences file, farview.ini to protect your information and to identify users and their capabilities. You should get familiar with the preferences file using a text editor.

Host Preferences

You set up the [Comm] section to reflect your choice of listen port as in the following example:
accept=link | body
listenPort=5280 ; set this to a non-zero number
serverIP= ; not yet used
serverPort=8000 ; not yet used
userName=<your user name here> ; set this to your chosen farVIEW name
Set the [Books] section to show which farBook(s) you want to be visible via the listen port (5280
above) as in the following example:
farview=farview.vue ; in the default folder
myBook=c:\my book folder\mybook.vue
; 256,1024,4096,16384,65536,262144,1048576,4194304
sizes=100,100,60,40,20,10,5,1  ; %extra space
The example exposes two farBooks: farview and myBook. Note that the value associated with the farBook name is the path, either the relative path from the working directory that you specify in your farVIEW shortcut on the host (as in the first example), or the absolute path (as in the second example).

Note that, assuming that the host PC has an ip address of, the far-links for these two farBooks are

If the entries that provide the location information for the farBooks is not in the [Books] section, these far-links will fail.

You can determine the ip address assigned to the host PC by running the Microsoft program ipconfig in a MSDOS window on the host.

Controlling Exposure on the Host

Now you want to control the degree of exposure the farBooks will provide. You do that by adding a section for each exposed farBook that identifies the users of the farBook. In our example, you would add a [farview] section and a [myBook] section. These sections identify who you will allow to access each exposed farBook, and provide a mechanism to control the extent to which they will access the farBook. Unless the wild-card entry (*=) is present, only those listed have access to the farBook. Note that having the wild-card entry means that anyone can have access to the farBook, but only to the extent the key-list allows.
jeRaven = [<key-list>]
drTurbo = [<key-list>]
*       = [<key-list>]
The key-list is optional. If you aren't using it, just use the word user. It has no special significance, it will just help you remember to include the equal-sign, which is absolutely required to allow the user to have access to the farBook; in this case, myBook. I'll explain the key-list in the following section about locks and keys..

Locks and Keys (not final)

farVIEW supports a lock-and-key permissions scheme that is flexible and (I hope) simple to understand. Each topic can have a list of locks based on three levels of exposure, which are enumerated in the next section. Each user can have a list of keys given in the preferences file. When a user attempts to access a topic, her key list is compared to the list of permissions in the topic's Exposure property. If any match, the user obtains the specifed exposure.

For the following discussion, suppose you have decided to identify your personnel as belonging to one or more of the following groups:

 executive (exec)
 administrative (admin)
 finance (fin)
 sales (sales)
 marketing (mkt)
farVIEW provides three levels of exposure for each owned topic in a farBook, which are Private, Browse, and Public..Private means that only the topic owner will have access, Browse means that users other than the owner can see the topic and its contents but cannot change it, and Public means the topic is open to all comers.

Note that if a topic is anonymous, i.e., if the Owner field in its Property dialog is empty or not present, then the topic is not owned, and its exposure level won't matter, that topic is always public.

Because the basic farVIEW visual interface is through the Contents window, which is a tree structure, a topic that is the parent of a set of children topics controls the user's access to those children. Thus, the exposure of the farVIEW root topic determines the exposure of its children, and each of those child topics control the exposure of their children in a top-down sort of way.

I should note that the owner of a topic always has full access to that topic, assuming that the path from the root topic to the topic in question is unencumbered by restricting locks..

A Lock is a key list in the Exposure field of a topic as displayed in its Property dialog.

For example, if you want to allow the administrative and executive staff to make changes to a topic, and allow the marketing staff to examine it but not change it, you would enter the following into the Exposure field:

public(admin,exec) browse(mkt)
Note that this specification rejects any user who is not in one of the two groups.
Now, suppose that jeraven is in the finance and marketing groups, while drturbo is in the executive and engineering groups:.

You code the key-list for jeraven as follows:

jeRaven = fin, mkt
drTurbo = exec, eng
jeraven has browse access to the topic while drturbo has public (edit) access to the topic.