The programs bot1.cgi, bot2.cgi, .., bot8.cgi are stages in the development of a "Beginning of Term" program for Faculty. The following postscript files all.ps finalexams.ps talberthoursmemo.ps directory1.ps generalmemo1.ps talberthoursmemo1.ps directory2.ps generalmemo2.ps talbertmemo1.ps directorydata.ps graders2.ps talbertmemo2.ps finalexam2.ps graders3.ps finalexam3.ps grades1.ps are stages in the development of "boilerplate" for memos that are to be written by bot8.cgi. To gather course data from UB Wings, the (gnu) program "wget" was installed (on hassard.math.buffalo.edu) and was used as outlined below. To program the collected course data into a form that bot8.cgi can easily understand, the program sched1.pl was developed. This program writes the file course_schedule.txt. The other data file used as input by bot8.cgi is fac_staff_list.txt, as obtained from the Mathematics department website. Program bot8.cgi provides a unified, web-based form to handle in an automatic fashion most of the standard beginning-of-term faculty paperwork. Hosts yellow.math.buffalo.edu and hassard.math.buffalo.edu were used in development, and for spring 2000, bot8.cgi is hosted on yellow.math.buffalo.edu with actual printing on "-Plocal", the Apple Laserwriter in Rm 121 Diefendorf (the Mac room). It would be perhaps better if bot8.cgi was hosted on "newton", the department webserver. For development, it was simpler, however, to host the application bot8.cgi on the machine "yellow" that is physically connected to the Apple Laserwriter used by the application. When a user first hits the bot8.cgi (passing no data) this cgi constructs a list of faculty names from the file fac_staff_list.txt. The user is asked to select a name. By selecting a name, the user passes "basicname" data by the get mechanism to the same program bot8.cgi. On this activation of the program, the program knows "basicname" and looks up the corresponding to the name, in the files fac_staff_list.txt and course_schedule.txt. The bot8.cgi program then presents the with instructions and generates a form that the user completes. The form includes - grader request, - schedule final exams, - schedule Talbert office hours, - office hours on north and south campus, - email address, - changes in personal information (address, spouse, home phone) - current area, - material for vita, - material form department newsletter). When the user finally selects the "submit" button, the data gathered in the form is send, using the post back to the same program bot8.cgi. (When the hidden variable controlflag is passed to the program and has value = 1, that signals the program that it has all of this form data available) The subroutine XXrep within program bot8.cgi replaces strings consisting of two or more "X"s, with data derived from the forms. For each form to be written, the program bot8.cgi (1) reads the boilerplate form into an array, (2) calls XXrep to replace the strings of "X"s with the actual data, (3) writes the resulting array out to file bot8_scratch.dat. (4) issues a system command which queues the file bot8_scratch.dat for printing (it makes a copy of this file in a subdirectory that stores files to be printed). The last sheet printed is a memo to the program user, confirming that the various forms have been safely delivered. The file fac_staff_list.txt is as stored on www.math.buffalo.edu, part of the data used to generate the Math web pages. The program wget can be used to transfer it to the working subdirectory as follows: wget http://math.buffalo.edu/fac_staff_list.txt The file course_schedule.txt is produced by running a perl program sched1.pl, to process the set of pages produced by downloading both the undergraduate and graduate course schedule information with the program wget as follows: wget -r -l1 -P/tmp http://wings.buffalo.edu/schedule/index/cgi?action=ent\&table=winston.SPRINGSCHED\&div=1\&ent=MTH wget -r -l1 -P/tmp http://wings.buffalo.edu/schedule/index/cgi?action=ent\&table=winston.SPRINGSCHED\&div=2\&ent=MTH The flag "-r" applies wget recursively to descend one level below the starting http location. The flag "-l1" limits the depth of the recursive search to 1 level. The flag "-P/tmp" uses the /tmp directory to contain the results of the search and transfer.