README

This is a beta release of xvgopher -- an XView based gopher client.

Gopher is a distributed information browsing/retrieval system used at
many universities and other institutions to make information and
services available in a user friendly and consistent manner.

NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
This is a beta release!  This means that I am still very actively working
on xvgopher, but I got many requests to make it available ASAP.
Please report any problems you find as soon as possible so that I can
incorporate the fixes in the first major release.
The latest release will always be available.  There are two ways of
accessing it:

	anonymous ftp to gopher.sdsu.edu in /pub/xvgopher
	gopher to gopher.sdsu.edu: Software Distribution/UNIX/XvGopher


HISTORY OF XVGOPHER
We started out wanting something similar to TurboGopher (a Macintosh
gopher client.  Really nice!!) for MS-Windows.  There are several good
pc gopher clients available, but the ones I checked out either didn't
run as a MS-Windows application, weren't public domain, or required
some non- public domain networking software.  (We are on an extreemly
low budget...) So, we decided to write one...

Well, this would have been great, but I refused to write any MS-Windows
applications on my 20 MHz 386!  So, while waiting for a better PC, I
decided I might as well write a prototype using XView.

I should point out that there is a pretty nice X11 gopher client
available called xgopher.  However, it boils down to a fancy window
around something similar to the text based gopher client.  (This is
greatly exaggerated, of course!)  We did use the gopher icon that
xgopher uses.  It is pretty cute (and none of us are good artists.)

The prototype I started writing turned out to be quite usable and we
started using it instead of the text based client.  It is not a
prototype anymore; it is now a full gopher client.

I wrote all of xvgopher in C++ because that is the language I am most
comfortable with.  I used the Sniff C++ development system to write
all the code and I used Sun's DevGuide to figure out sizes of windows and
locations of buttons.  I did not use DevGuide for the code generation
for several reasons:  1) Not everyone has DevGuide which makes it hard
to distribute the source code.  2) The C++ code generator that comes with
DevGuide doesn't really do anything in an object oriented way.  It would
make the code horrible!  (Actually, XView is not very easy to integrate
in an object oriented program because of all the callbacks...)


SYSTEM REQUIREMENTS
xvgopher is written in C++.  This may scare some people, but not to
worry.  If you do not have a C++ compiler, just get gcc 2.3.3 and
libg++.  xvgopher will compile with those just fine.  So far it has
been tested on various suns running SunOS 4.1.X and on an HP 750.
The code does not use any C++ features not available in cfront 2.1.  So
if your C++ compiler does not support templates....  neither does
ours!!!  (We only just got SunPRO's C++ 3.0 compiler.  Thanks for the
great 15 minute license linger time, SunPRO!!!!! :-(  Stuff like that
doesn't work in a University environment!  (ANDREW!!!  GET OFF THAT
SOAP BOX!!!)) xvgopher also requires that you have XView3 installed on
your system.  If you have Sun's Openwin 3.0, that's fine too, although
you will have to have the 'Openwin Programmers' section installed.  The
only other requirement is that you have to have some network so you can
talk to a gopher server.


CONFIGURING
Configuring xvgopher is pretty straight forward.  Just edit
'xvgopher.h' and change the defines above the section that says to not
edit anything below it.  (Did I make you read that sentence twice??
:-)) Then edit the Makefile and change the macros to your liking.


COMPILING & LINKING
Type 'make depend'
Type 'make'


INSTALLING
type 'make install'
It will install the xvgopher executable and the man page.


USER CONFIGURATION
The first time xvgopher is run by a user, it creates ~/.xvgopher-defaults.
This file contains all the currently configurable items.  The easiest
is to change those parameters using the Preferences popup, but they can
also be edited by hand.  Xvgopher uses the X11 resource database
routines to read the items, so the format of the file should be
familiar.  When bookmarks are created, a file called ~/.xvgopher-bm
will be created which contains a list of bookmarks.  The bookmarks are
stored in the same way they information was sent from a gopher server
to xvgopher.  If you are not familiar with the gopher protocol, don't
worry about it.  If you ARE familiar with the gopher protocol, don't
worry about it too much.

CREDITS
(These really should be slowly scrolling by while appropriate music
is playing, but you have to wait for version 427 for that feature...)
Thanks to all the people who have done testing and given me feedback
on the design and implementation of xvgopher.  
Here are some names:

Mark Boyns (SDSU)			-- testing & UI layout & icons
John Denune (SDSU)			-- testing
Mike Halderman (NOSC)			-- testing
Paul Lindner (UMN)			-- gopher icon


BUGS, COMMENTS, GRIPES, MONEY, LOVE
If you have any of the above directed at me, I'd like to hear about
it!  I would especially welcome any bug reports (and possible fixes)
and also comments.  I like getting email!
Basically, if you like it, let me know why.
If you dislike it, let me know why.
If you had problems, let me know why.
If you have not tried xvgopher but still have comments about it, let me
know why.
If you don't like me, let me know why.
If you think this is getting silly, let me know why.
If you are still reading this list of questions, you owe me beer!!!


WHERE IS ANDREW??
Well, I am reachable by email at turtle@sciences.sdsu.edu

Happy gophering to y'all!  C++'ya in gopherspace.


--Andrew
____________________________________________________________________________
Andrew "Race Turtle" Scherpbier, SysMgr
College of Sciences
San Diego State University
EMAIL:	turtle@sciences.sdsu.edu
VOICE:	(619) 594-5026
FAX:	(619) 594-6381
____________________________________________________________________________
