This section is from the document '/news-archives/comp/infosystems/gopher/general'. From alt.gopher Tue May 5 18:20:36 1992 Status: O X-VM-v5-Data: ([nil t nil nil nil nil nil nil nil] [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil]) From: isca@umaxa.weeg.uiowa.edu (Iowa Student Computer Association) Date: 5 May 92 20:57:21 GMT Newsgroups: alt.gopher Subject: Panda Panda is a program being developed at the University of Iowa for campus network use. The eventual goal is to provide a common, user-friendly, secure front end for most internet services (FTP, Gopher, UseNet, DOC (a BBS server), mail, talk, write) so that the average user can sit down at a terminal/home PC and start off using the internet without learning Unix. In addition, since the communications will be secure, it will be a good client to be used in a broadcast network situation (for example, personal Macs on an ethernet network in a dorm). Instead of making servers that speak gopher out one side and other services out the other, we're working on making the client be able to speak to the servers directly, as well as a programming language so that the client can "download" a program to speak to a brand new server (a simple scripting language, really). Right now, we've taken the "gopher" program and modified both the client ("panda") and the server ("pgopherd") heavily. We liked the gopher client look (for curses), so we used that as our launching point for the project. In its current form, Panda is just a souped up gopher client, but by fall we should have many of the above services up and running. The Panda client will *always* speak gopher, so people currently using gopher may be interested in some of the changes we've done to the Panda client. If you'd like to give Panda a try, telnet to "panda.uiowa.edu" and follow the prompts (if all you have is rlogin, use the account name "panda" on that machine). We're putting up both halves of Panda, as well as a few other utilities, up for anonymous FTP from chop.isca.uiowa.edu, *BUT* it is in a very rough form. The documentation is incomplete, and although both sides have been ported to an Encore Multi-Max, a NeXT, and an Apollo (DOMAIN), we make no porting assurances. In other words, at this point you're on your own. We apologize and will be working to make it smoother as time permits. What follows is a brief listing of the extensions to the basic gopher stuff whenever we grabbed it: Client enhancements: Still communicates with all other gopher servers, transparently to the user. Ability to add informational text to the tops of menus. This makes menus look a *lot* nicer and are much more readable than plain menus. See the sample screen later in this note. Command-Line interface. This allows for more options than the hot-key version (as our work with ISCABBS has taught us), which will be particularly important as more services are added. Screen updates have been changed slightly to work better over a slow-modem link. Compu$erve-style "go commands" are supported. You can type "go movies" and go directly to the local movie listing without wading through the menus. These aliases are globals to the entire campus, so they require no setup by the user. Newpaper articles sometimes include what the "go shortcut" is on Panda for more information. Users can "yank" an option, which adds it to their own personal main menu. This is a lot like the bookmark on the PC client. A longer form of help that allows for an online reference guide (vaguely hypertextish). The ability to support remote printing, using the pgopherd server. This allows the user to select a printer froma list of available printing locations, and currently supports three non-connected printing systems at the University of Iowa. The whole printing thing is really slick.... Little things, like minor improvements to CSO, a "top" command, dynamic one-line help, and so on. Server Enhancements: Menu command language changes (described below). Ability to update/create files from a remote location, including flexible password validation. Ability to resolve the shortcuts for the "go" command. Ability to accept a file remotely and execute a command with the input file (which is how we do printing). We enhanced an old version of gopher to make it do *exactly* what we wanted, in terms of how our directories are laid out. Although they are still around, side files will not be supported in the future, and we're only going to support one way of setting up pgopherd servers, which is the way we've found easiest. Sorry. The current way of getting menu pages by a directory listing of a directory is still supported, but that doesn't work well: the order is based on when the file was created and other files deleted, you end up with really long file names, your file names have wonky characters in them, and so on. Although we still support it, and will continue to do so, this is not the recommended way. The specification of an "order" was cumbersome, and we didn't add it to our server and have no plans to do so. Instead, we expanded the capabilities of the "link" file (the ones which are currently read as files beginning with a dot) to be able to work around all of our above problems. We call these files "Menu Definition Files" (MDF), and to "read a file as an MDF" means totry to parse the contents and match it to the MDF format, and spit out a gopher menu to the client. 1) If a directory is named as type "1" (directory), then it is handled like always, with one exception: if a file named "dir.info" exists in that directory, it is processed as a MDF file and the rest of the directory is ignored. As always, any file in that directory whose name begins with a dot is processed as an MDF file, and certain file names are always skipped over. 2) If a file is named as type "1" (directory), then that file is processed as an MDF file and that's it. These two simple changes allow for a *much* easier to maintain file tree. For example, for one department in the University of Iowa, the directory contains three .mnu files and a bunch of .txt files. The .mnu files point to the .txt files (one .mnu file also contains entries that point to the other two .mnu files as submenus), and everything is easy to maintain using standard Unix utilities. The MDF is a lot like the "old link" format used in gopher servers. Each menu option reads like the following: Type=0 Name=Registrar's Office Path=~/registrar/main.mnu Host=chop.isca.uiowa.edu Port=8337 If either the "Host" or the "Port" lines are missing, the server assumes the current host and the current post (that is, it assumes itself). If the Path begins with "~/", then the rest of the path is relative to the directory that contains the MDF file, which allows trees to be moved pretty easily. In addition, anything appearing between the lines ".info" and ".endinfo" is read-only text to be displayed at the top of the menu. An example of one of our menus follows: .info This is the May edition of Passport, the newsletter for the Office of International Education and Services (OIES). You can go directly to this menu by typing "go passport" at any Command=> prompt. .endinfo Type=0 Name=About Passport Path=~/about.txt Type=0 Name=Current News Path=~/current.txt Type=1 Name=Information About Immigration Path=~/immig.mnu Type=0 Name=Calendar of Upcoming Events Path=~/calendar.txt Type=0 Name=Employment Opportunities for Graduates Path=~/employ.txt Type=0 Name=Financial Aid Path=~/finaid.txt Type=0 Name=Off-Campus Educational Opportunities Path=~/off-camp.txt Type=0 Name=Nationality Organization Officers Path=~/leaders.txt Type=1 Name=Health Information Path=~/health.mnu Type=0 Name=Feature Stories with an International Theme Path=~/features.txt Produces the following menu on a Panda client: ----------------------------------------------------------------------------- Page: 1 of 1 University of Iowa Panda (v. 0.8) Passport: News & Information for Foreign Students and Scholars This is the May edition of Passport, the newsletter for the Office of International Education and Services (OIES). You can go directly to this menu by typing "go passport" at any Command=> prompt. --> 1. About Passport 2. Current News 3. Information About Immigration... 4. Calendar of Upcoming Events 5. Employment Opportunities for Graduates 6. Financial Aid 7. Off-Campus Educational Opportunities 8. Nationality Organization Officers 9. Health Information... 10. Feature Stories with an International Theme Command==> ?-Help Up-Prev. Menu ----------------------------------------------------------------------------- And has the following directory on our pgopherd server: about.txt em-105-h.txt fsaf.txt immigadv.txt off-camp.txt calendar.txt employ.txt health.mnu immigr.mnu pt.txt current.txt f-1-on-c.txt health.txt info-sht.txt shs.txt em-101-h.txt f1status.txt helth-mr.txt leaders.txt ucs.txt em-103-h.txt features.txt immig.mnu main.mnu em-104-h.txt finaid.txt immig.txt mbsclf.txt which is a lot easier to handle. Anyway, that's our Project Panda in a nutshell. If you're interested in our future directions, or what we're doing to increase sucure communications through the internet, telnet to "bbs.isca.uiowa.edu" and join the Panda> room. Or send me personal E-Mail. Thanks for your time. Lee Brintle | ``And so, I leave you with this final word: Director, Project Panda | twang.''