Inside TurboGopher. ------------------- This short document describes features of TurboGopher that either network administrators or Gopher weenies would want to know. Waking up TurboGopher. --------------------- When TurboGopher starts up, it looks for the TurboGopher Settings file first in its own folder, and failing that in the Preferences folder. If it finds the TurboGopher Settings file, it uses the settings and resources (more on this later) it finds inside. If it cannot find the file, it creates a new one in the Preferences folder based on its internal defaults (more on this later too). If there are any bookmarks the user had set in the Bookmarks worksheet window, the Bookmark worksheet window is opened. If the user had deleted all bookmarks, the Bookmarks window is not opened (the contents of the Bookmark worksheet window are remembered via the Settings file). Next TurboGopher looks to see if the user has launched it by double-clicking on a Bookmark file (or by dropping a Bookmark file on it under System 7). If this is so, the contents of the Bookmark file (more on format later) are read and placed in a list (directory) window; in this case TurboGopher will not make a connection immediately to the Home Gopher Server. If TurboGopher was launched directly (not via a Bookmarks document) then it connects to the Home Gopher Server, retrieves the contents of its top directory, and places this in a list (directory) window. At this point, TurboGopher is fully up and running. Next we need to describe the various parts alluded to above. The Home Gopher Servers ----------------------- Out of the box, TurboGopher comes preconfigured to connect AT RANDOM to one of the two primary gopher clones (gopher.tc.umn.edu or gopher2.tc.umn.edu; the former is also known to old Gopher folks as gopher.micro.umn.edu) at the University of Minnesota. It must be emphasized that these are NOT a primary and secondary server: they contain exactly the same information and changes made to one are automatically propagated to the other. If the first connection attempt fails, TurboGopher will try the next. This has two purposes. First, initial connections are very reliable for users and since we serve as the world's Gophermeisters, this is good. More importantly for us, the randomization ensures that users will spread the load over our two small, economical, primary servers (Mac IIci's). If your campus' primary Gopher server experiences heavy use, we suggest you make a clone too. The user may of course reconfigure for only one primary server. TurboGopher remembers this via the Settings file. A campus network administrator may directly set TurboGopher's internal primary server defaults by altering STR# ID 3002 using ResEdit. The first 3 strings are for one alternate server, the next 3 are for the other. Leaving one or the other triplet empty implies that no clone servers are available. The first string in the triplet is the server's domain name, the second is the port, the third denotes whether it is a Gopher+ server (ignore this for now). Other Built-in Information -------------------------- A campus network administrator may also change the default bookmark set that TurboGopher carries around with him. This is stored in a 'TEXT' resource called 'BookMarks'. It contains Gopher item descriptors EXACTLY as they come in off the net, ie: Display-StringSelector-StringhostNameport NOTE: Ugly linefeed after the The built-in manual is stored as 'TEXT' resource called "HeLp". While you can replace that, we certainly don't encourage you to do so. Finally, most of the important English text for status messages etc. are stored in STR# resources, The primary one of these is STR# resource ID 3003. This is important for international localization purposes.... but read on. Bookmark file formats --------------------- Bookmark files contain just the Gopher item descriptor lines that a Gopher client would ordinarily retrieve over the net. Please read the Internet Gopher protocol document for more information on this. Gopher bookmark files contain text. The fileType is not 'TEXT' however, so if you wish to edit one with a word processor or text editor, you will have to either change its fileType or use a permissive editor. Each line contains the familiar: Display-StringSelector-StringhostNameport NOTE: This is Mac text... SO NO LINEFEEDS AFTER THE Bookmark files have the type 'BKMK' and creator 'MDDF'. The Import Bookmarks menu item allows you to ATTEMPT to read any filetype you want and treat it as a Bookmark file. Please use this with caution. While TurboGopher will attempt to make sense out of the file, and will reject most junk files, you definitely are on thin ice here. The Open Gopher Bookmark File menu item however will only let you open bonafide Bookmark Files. ISO Translation Table --------------------- The ISO Latin-1 character set translation tables used by TurboGopher were kindly supplied by Jean-Pierre Kuypers , Pascal Maes , and Andre Pirard They are stored in taBL resources with ID 1002 and 1002. The TurboGopher Settings file ----------------------------- We don't want you mucking around inside the data fork of a Settings file, so we aren't going to encourage you to do it by spelling out the format (though anyone with a disk editor and a room temperature IQ can figure it out). We DO want you mucking around inside the resource fork of the Settings file though. When it is created by TurboGopher, the TurboGopher Settings file has no resource fork. If you add one by opening the file with ResEdit, then TurboGopher will place the Settings file in its resource search path. This means that if you want some custom resource to be used by TurboGopher, you may place it in the resource fork of the Settings file rather than munging around inside TurboGopher's application resource fork. We would like you to place things like string localizations, custom code resources, and overridden configuration resources here for your local users. This way, you can distribute a localized TurboGopher Settings file on your campus and you shouldn't have to scramble to patch the application every time we release a new version. Certainly we might add more strings to various STR# resources... but if you drop us a line and tell us what you are doing with the resources, we will inform you before we release any new versions of TurboGopher that might affect you. We have made provision for TurboGopher to execute external code resources to do certain tasks. At this point we're deciding if we should adopt some new interface for these code resources or to use the interface that Mac folks are very familiar with: XCMDs. We will probably wind up giving you access to various internal parts of TurboGopher via XCMDs. This document will be updated as necessary. Feedback or comments can be sent to the usual place: gopher@boombox.micro.umn.edu - The Minnesota Gopher Team.