IntroductionThis website contains roughly 150 pages in the "main collection" maintained by webmaster@math.buffalo.edu, and a larger number (600+?) of pages in the "mad" (Mathematicians of the African Diaspora) subcollection maintained by Scott Williams. This document describes the main collection, i.e. the www.math.buffalo.edu/ pages excluding the www.math.buffalo.edu/mad/ pages.The document is arranged chronologically, with the latest items last.
CreditsThe design of these pages owes much to the members of the Department Committee on Computing and Information Technology: John Ringland, Michael Cowen, Scott Williams, Eugene Kleinberg, Bruce Pitman, and John Bell. Beta testers who provided valuable suggestions included Marie Bennett, Marie Daniel, Dick Vesley, Jim Faran and Bill Menasco (my apologies to anyone left out..)
Basic IdeasThe pages are designed to support users viewing the pages with lynx, Netscape or Internet Explorer. To simplify maintenance, the basic ideas are
The server, main directory and date labeled subdirectoriesThe server willrogers.nsm.buffalo.edu has been used to host the webpages since 2001. This machine is maintained by Engineering Node Services.The web location www.math.buffalo.edu/index.html corresponds to file /usr/local/info/math/index.html in the NSM file system which is used by willrogers. The main collection of math webpages resides in the directory /usr/local/info/math/ and is "flat".
Date labelled subdirectories such as
Since 1997, the process of updating web pages has been,
While the files in each dated subdirectories are publicly accessible if you type the full address including including the date explicitly, the files in dated subdirectories will not be readily accessed because there are no links to them from pages in the main collection. For example The version of the web pages last maintained by Scott Williams are stored in 19970922. A user that knows this, can access these pages by pointing the browser to the location www.math.buffalo.edu/19970922
Master files (.txt)Files of type ".txt" are the "master files" containing data to be included in the Web pages. These are plain ASCII.
top_pages.txt # data for the 'top' pages
# index.html, Calendar.html..
fac_staff_list.txt # faculty and staff list data
emeritus_list.txt # list of emeritus faculty
fac_areas.txt # areas for faculty list by areas
gr_student_list.txt # grad student data
ug_course_list.txt # undergraduate course data
gr_course_list.txt # graduate course data
crs_areas.txt # areas for course list by areas
update procedureA perl script to construct the web pages. Normally, the webmaster will
When the update script is run, the last thing it does is test the set of local links in the .html pages that it generated. To do this, it tests to see if .html files are present in the current subdirectory when update is run, which will be the date-labeled subdirectory of "public_html". Web pages which reside on other machines (ex/ wings) are not local and are not tested by update. Instead, the user is asked to check them by browsing the file check_links.html, written by program check_links, which contains all of the non-local links.
Partial list of web page files generated by "update":
index.html Calendars_News_and_Postings.html # faculty_staff_list.html # faculty/staff list fac_by_areas.html # faculty listed by areas gr_course_list.html # graduate courses crs_by_areas.html # courses listed by areas gr_student_list.html # grad student list .. Hypertext format files (.htf)
These '.htf' files are prototypes for .html files.
The .htf files are basically .html files themselves, except they
may contain strings such as
(partial list of .htf files) index.htf # format for index.html level1nt1.htf # format for 1 column pages at 'level 1' level1nt2.htf # format for 2 column pages at 'level 1' level2.htf # format for most pages at 'level 2' fac_staff_list.htf # written by fsl.pl; format for fac_staff_list.html fac_by_areas.htf # format for faculty by areas gr_student_list.htf # written by gsl.pl; format for gr_student_list.html fac_staff_pages.htf # format for standard individual homepage Construction of html files from hypertext format files and text filesHypertext format files (.htf) are "boilerplate" versions of html files. Construction of html files from the SAME hypertext format file, ensures a consistent look-and-feel to the pages constructed. The basic difference between htf files and html files is that patterns '{..}' in htf files are replaced by data to create html files. As a simple example,
In text file
------------
'title: Academics'
'item1: _Graduate Courses_
'item2:_Courses listed by areas_->"crs_by_areas.html"
In htf file In html file
------------- --------------
'{title}' 'Academics'
'{item1}' '<A HREF="Graduate_Courses.html">Graduate Courses</A>'
'{item2}' '<A HREF="crs_by_areas.html">Courses listed by areas</A>'
Some of the tags used have special interpretations (see below). Except for these special tags, the tag mechanism is simple substitution and one is free to invent new tag names.
Master file for 'top level' pagesHere is the current file top_pages.txt. The update procedure reads the file top_pages.txt and constructs a page for each entry in the file. Entries are separated by (one or more) blank lines. In each entry,
If no arrow immediately follows an underscored-delimited string, then the link is to the local file with name constructed from the string. For example, item1: _Academics_ is equivalent to item1: _Academics_ -> "Academics.html" Default value file top_pages.defThis file isused to set up tag values that will apply (unless redefined) throughout the entire interpretation of top_pages.txt. For example, the control bar generation is largely managed by a system of definitions for the tags named "uulr" "uuulr" and so forth. The patterns {uulr} {uuulr} etc. which appear in the .htf files level1.htf, level2.htf etc. specified in top_pages.txt, are replaced by control bars with (respectively) control bars consisting of two up-arrows a left and a right arrow, three up-arrows, a left and a right. List of other file types
Faculty and Staff listHere is the current list: fac_staff_list.txt. This file is used to construct
Grad student master listHere is the current list: gr_student_list.txt.
Substitution of tagged data into hypertext format filesSpecial Patterns{this_date}is replaced by the current date (i.e. the date that make_pages.exe is run) in the form, mon dd yyyy, for example Oct. 23, 1997. Implementation: within make_pages.for, subroutine datecnv(yyyymmdd,monddyyyy) was written to convert date in the yyyymmdd format returned from subroutine datestr, to the desired monddyyyy format.{from date1 to date2 expression}allows displaying an expression during a certain period, before which and after which the expression disappears.Here date1 and date2 are given in yyyymmdd form. When program make_pages is run, if the current date falls in the interval date1 to date2, then the pattern is replaced by the expression. For example, {from 19971018 to 19971025 <img SRC="http://www.math.buffalo.edu/icons/new_red.gif" alt="*New*">} Note that unless make_pages is run on a daily basis, this mechanism will display out-of date information until the date at which make_pages is run. {parent1}, {parent2} .. {parent4}are replaced by full links to the first 4 pages found during the update procedure, that call this page. Similarly,{parent1name}, {parent2name} .. {parent4name}are replaced by names of the .html files of the parents, and{parent1title}, {parent2title} .. {parent4title}are replaced by the titles of the parents.
If the page has only one parent, then
{parent2}, {parent3}, {parent4}, {parent2name} {parent3name} {parent4name} {parent2title} {parent3title} {parent4title}are replaced by null strings. {prevpage} {nextpage}, {thispage}are replaced by (respectively) with full links to the (respective) page.{prevtitle} {nexttitle}, {thistitle}are replaced by (respectively) the title strings, and{prevname} {nextname}, {thisname}are replaced by the page name (the name of the .html file) that was most recently generated by the update, the page name that will be generated next, and the page name of the page currently being generated.
Loop control pattern{for ..}This feature allows looping over items in the data file (if there is one) for the page being generated.
example 1: For each entry in the data file, if there is a 'name:' given and if the first letter of the name falls in the range 'A' to 'C', then write a line of the form '<P>{name} {office} {Phone}</P>' to the html file for the page. The for loop controls just to the end of the current line. Only the current entry in the data file is scanned for data to replace the patterns {..} within the loop. Here {name} becomes the actual name and {office} becomes the actual office (or a single blank if no office is given). Because the first letter of {Phone} is capitalized, {Phone} is replaced by the string 'Phone: {phone}' where {phone} becomes the actual phone is one is given. If no phone is given, {Phone} is replaced by a single blank. example 2: {for name[5] in 1..4}{number} {title} <BR> For each entry in the data file, if there is a 'name:' given and if the 5th letter of the name falls in the range '1' to '4', then write a line of the form '{number} {title} <BR>' to the html file for the page. This loop is appropriate for course data in which the names may be 'MTH 115',..,'MTH 499','MTH 511-512',.. and will list just the undergraduate courses and titles. The values of {number} and {title} substituted are found by scanning the current entry in the data file for 'number:' and 'title:' data. (If number data is missing, it is constructed from name data. So, 'name: MTH 115' by itself implies 'number: 115')
Patterns beginning with a capital letterSuch patterns are treated in a special fashion. For example, if 'office: 214' appears in the data for the current entry, then '{Office}' is replaced by 'Office: 214' while '{office}' is replaced by '214'. If no 'office:' data appears in the current entry, both '{Office}' and '{office}' are replaced by a single space.
Other patternsFor each other pattern {tttt} in the current line of the .htf file, the program scans the current entry in the data file, looking for data tagged as 'tttt:'. If such data is found, the program replace {tttt} by the value found. If no such data is found, the program replaces {tttt} by a single space character.
Precedence in substutionsWithin a loop, the
Control bar constructionIn the files top_pages.def and fac_staff_pages.def, values are given for the tags u, ul, ulr, ul, uur, uulr, uul, uuur, uuulr, uuul, uuuur, uuuulr, uuuul. When make_pages constructs the pages according to top_pages.txt and in fac_staff_pages.txt, the patterns {u}, .. {uuuul} are replaced with html code that produces 'control bars', actually tables with two columns containing labeled graphics. {u} produces an uparrow linked to the parent (1st parent, if more than one) for the current page. {ulr} produces a control bar with up, left and right arrows linked respectively to the parent page, the previous page and the next page. Here 'next' and 'previous' are determined by the order in which the pages are constructed, i.e. in the order that the pages are described in top_pages.txt and fac_staff_list.txt.
Similarly, the default definition controlbar: {{uuulr}} in file fac_staff_pages.def is appropriate for most of the pages described in fac_staff_list.txt.
Mechanics of the substitutionsFor each single item in make_pages.dat (either top_pages.txt or of fac_staff_list.txt) the item is copied to scratch.dat. Then the file make_pages.def (either top_pages.def or of fac_staff_pages.def) is appended to scratch.dat. The value of the format: field in scratch.dat determines the format file (.htf suffix) to be used in constructing the .html file. The format file starts with a line such as {level1_top} and ends with a corresponding line such as {level1_bot} Values to replace these patterns are defined in the .def files, and so also in the file scratch.dat. The value for pattern {level1_top} is of the form
<html><head>..{controlbar}<br><P><h1>{title}</h1>
The program make_pages calls subroutine tag_replace to perform the pattern substitutions. Substitution proceeds right to left. The first '{ in the current line is found, and the pattern to be replaced is determined. Then scratch.dat is scanned to find the first value associated with the pattern. The pattern is replaced in the line and the line is scanned again. The line {level1_top} in the .htf file first becomes, after substitution of the definition of level1_top: from top_pages.def, <html><head>..{controlbar}<br><P><h1>{title}</h1> When the scan encounters the string {controlbar}. (and assuming that itemmake_pages.txt doesn't define controlbar:) after substitution of the definition controlbar: {{ulr}} in top_pages.def, the line becomes <html><head>..{ulr}<P><h1>{title}</h1> After substitution of the definition of ulr: the line becomes <html><head>.. <table> <tr><td>{uplink1}</td><td></td></tr> <tr><td>{prevlink}</td><td>{nextlink}</td></tr> </table> <P><h1>{title}</h1> After the substitution of the definition of uplink1: <html><head>.. <table> <tr><td> <A HREF="{parent1name}"><IMG SRC="http://www.math.buffalo.edu/icons/uparrow.gif"></A> <A HREF="{parent1name}">{parent1title}</A> </td><td></td></tr> <tr><td>{prevlink}</td><td>{nextlink}</td></tr> </table> <P><h1>{title}</h1> Assuming the current page is a child of index.html then after get_parents determines the parentage and after subsitution the line becomes
<html><head>..
<table>
<tr><td>
<A HREF="index.html"><IMG SRC="http://www.math.buffalo.edu/icons/uparrow.gif"></A>
<A HREF="index.html">Mathematics </A>
</td><td></td></tr>
<tr><td>{prevlink}</td><td>{nextlink}</td></tr>
</table>
<P><h1>{title}</h1>
at which point the .html code to produce the parent link is completed.
The substitution process continues until all patterns { } in
the line have been replaced.
Control bar design philosophyIf the collection of web pages were a tree, then each page (except for the root) would have exactly one parent. However, in the collection of Math Dept pages, pages may have multiple 'parents'. This raises a question about 'next' and 'previous' pages: in a tree structure, a natural definition of 'next' and 'previous' would be right and left siblings. However, without a true tree structure, if a page has multiple parents, then it may have a different left and right siblings. For simplicity, it was decided that 'next' and 'previous' (and left and right control arrows based upon next and previous) would refer to the pages immediately preceding and following the current page in the .txt file describing the set of pages. (The defaults may be overridden by use of tags nextpage: and prevpage:) The order in which pages appear in this file is therefore important: all of the child pages for a given parent, should follow after each other in the file, in order for the left and right arrows to link the children.
ImplementationThe update procedure is a perl script that
util/email_graphics5 # constructs email graphics for emails, ex-
# icons/emailgraphicazittobuffaloedu.gif
# from email data in file masterlist2.txt.
# masterlist2.txt is created by util/masterlist2.pl
# from the latest versions of files
# fac_staff_list.txt, gr_student_list.txt,
# instr_list.txt and emeritus_list.txt
fac_gr_emails # constructs files fac_emails and gr_emails
# of faculty/staff and graduate student
# email addresses, to be picked up
# by regularly executed job (chron)
# by Bob Meyer, for mail alias
# also constructs fac_emails.html
list_by_areas # constructs fac_by_areas.dat from
# fac_areas.txt, fac_staff_list.txt
# & constructs crs_by_areas.dat from
# ug_course_list.txt+gr_course_list.txt
# and fac_areas.txt
make_pages # generates (sub)collections of .html files
# from ug_terms.txt, from top_pages.txt,
# and from fac_staff_list.txt
check_links # checks all of the local links
# found in the set of .html files
# generated by make_pages
Distribution of responsibility for web pagesThanks to the ability of web servers to run CGI applications, it is possible for a browser user to make changes in files and run programs on the web server. This makes it feasible to distribute responsibility for maintaining web pages that change frequently, to those individuals most interested in the data.For example, one can envision a situation in which
Updating Calendars, News and PostingsThe math web server machine provides CGI (Common Gateway Interface) service; it is set up to run programs on the machine when a web user hits particular locations. Only the subdirectories /cgi /rur may contain cgi's, and these directories may NOT contain html's. (Different web servers, are configured differently; ex/ wings allows a mix of .html .cgi and data) If it is desired to execute cgi's from any other directories, it is is necessary to have a system administrator add the name of these directories to a list of those from which cgi's will be executed. These directories may not contain html.
At present, the link that causes the calendars, news and postings
update to execute is
and is a form, which sends data (when the submit button is selected, to
the program ucnp4.cgi is located at
and is a perl script (earlier versions were update_calendar_news.cgi, ucnp1.cgi, ucnp2.cgi, ucnp3.cgi) Originally designed to run on wings and to update just the seminar schedule, it has been ported from wings to the math department server and enhanced to update various different pages, and to simultaneously archive the postings to year-dated files. The program itself reads from standard input and writes to standard output and to files
The browser user accesses page update_calendars_news_postings.html and fills in a form. (ref. HTML, The Definitive Guide, 2nd Edition, Musciano and Kennedy, ch0 10). A "radio button" selection appears, to select which of the web pages on the list above to update. Then she fills in the "updated text" field of the form, normally by cut-and-paste from a word processor. When she hits the "Update web page" button, the data from form is sent using the POST method, to the web server. The server then executes the ucnp4.cgi to process the with the data from the form. The cgi responds to the browser user by sending back a web page that it constructs on the fly. The program checks username and password data fields. If this information is not correct, it send back a simple web page with the message, 'Invalid User'. If the username and password are correct, then the program sends back a message 'Valid User.' The program then decides whether or not to archive the previous version of the web page. If so, it extracts data (trims 2 lines off the top and 5 off the bottom) and appends the result to the archive file corresponding to the web page and the current year. As of 19990220, the previous web page will be archived if it is from a different day. After archiving, the program processes the text from the form a bit (strips all new-line characters, both unix and dos format) adds 2 lines of boilerplate html to the top and 5 lines of boilerplate html to the bottom, then overwrites the previous web page. A message, that the web page has been updated, is send to the browser user that initiated the update.
The Math dept. web site has links to these .html files, under "Calendars, News and Postings". The information in these web pages changes immediately as soon as the cgi has run.
Archives and the subdirectory archiveA single page was set up for the seminar and colloquim information on Oct. 23/1997 as per Marie Bennett's suggestion, and archiving was started, as of Jan. 1998.Archives are maintained in subdirectory /archive as .html files. An archive viewer for the seminar and colloquium archive was set up in the form of a .cgi that creates an index and edits the "raw" seminar/colloquium data sem_coll_xxxx.html, where xxxx is the year. Other archives of pages acnews_xxxx.html, alnews_xxxx.html,ch_news_xxxx.html, gr_news_xxxx.html, job_postings_xxxx.html, myhill_lect_xxxx.html and ucnp_test_xxxx.html are also maintained (semi)automatically. At present, only the sem_coll_xxxx.html archive has a viewer. Here, xxxx=year, and acnews_xxxx.html (yearly news from the Associate Chair) alnews_xxxx.html (Alumni news from the undergrad studies office) chnews_xxxx.html (Chairman news) gr_news_xxxx.html (Graduate student news from the Grad studies office) cnp_test_xxxx.html (test data for the calendar-news-postings update script) jobpostings_xxxx.html (job postings) Of these pages, only the seminar/colloquium pages is used regularly: the individual entering the data does so by posting html in a "box" that accepts pretty much any html.
Other files that are stored in
Also stored in
Course Ads Spring 1998A facility was set up at the end of spring term 1998 to allow faculty to post their own course ads, much the same way that the seminar colloquium page is updated.update_course_ads.html is the form used to submit course descriptions, /cgi/uca2.cgi is the program that receives the form data /archive/course_ads.html is the data file containing the "raw" course ads, /cgi/vca1.cgi is the program that acts as a viewer for course ad data.Remark: at present (1998/09/02) the course_ads.html file isn't dated by year. It could be changed so that files course_ads_1998.html, course_ads_1999.html etc. are used. Having faculty post their own course ads, has not worked well so far. Another option is to have the webmaster scan in each course ad as a graphic; this also didn't work very well- the quality of the gif varies, and scanning is something of an art. As of Feb. ? 1999 no one had taken advantage of the ability to update course ads and so this ability was removed.
CGI development: update_calendars_news_postings.cgi, ucnp4.cgi, uca2.cgi, .. etc.The library cgi-lib.pl contains routines that read all of the data from a submitted form into an associative array, which makes it convenient to retrieve form data while in a cgi application (written in perl). A copy of cgi-lib.pl must be stored in htdocs/cgi (and in htdocs/rur). Several problems were encountered. The .cgi to update the colloquium/seminar page, was first developed on "wings" since that is machine where most of the local effort in cgi development occurs. Then it was moved over to "newton", where the rules for cgi's differ. On newton, subdirectories intended for containing cgis are EXCLUSIVELY for cgis, not data. The standard problem with a newly developed cgi, is that the server simply echos back the text of the program rather than executing it.
This happens
Another problem had the symptom that the cgi would execute with lynx but not with Netscape. This difficulty was traced to using type enc text/plain in the submit, with POST mode. Text/plain is valid for mailto: processing of forms data, however doen't work with POST mode when Netscape is the client (but does work when lynx is the client). A collection of problems were related to file permissions and ownerships: when a cgi application is executing, the user is "nobody". Other problems were due to differing locations/versions of the perl intepreter on "wings" and on "newton", and the absence of "cgi-lib.pl" in a standard location on "newton"
The view archive of seminars and colloquium program is view_archive7.cgi and may be called as http://www.math.buffalo.edu//view_archive7.cgi?archiveyyyy=xxxx where the parameter xxxx is 1998 or 1999 (2000 is also supported, but there is no data in the file archive/sem_coll_2000.html except for headers) Possible enhancements
Greek letters and Math symbolsThe symbol
can be displayed in html by the reference
<img SRC="http://www.math.buffalo.edu/greekmath0/alpha.gif" alt="$\alpha$">and a moderately complete collection of greek and math symbols can be displayed the same way. Marie Bennett uses these for the Seminar and Colloquium web page and has a list of accessible symbols. The symbols originated with www.chemistry.uni-essen.de and were apparently constructed by means of latex2html. Additional symbols as needed, have been constructed by means of latex2html. For the characters beta, eta, xi, rho, zeta with descenders, alternate versions with names ending in 2 are present. These are intended to be referenced as <img SRC="http://www.math.buffalo.edu/greekmath0/beta2.gif" align=middle alt="$\beta$">which with Netscape gives a proper vertical alignment.
*** However, it also causes the subsequent line to be displaced downward, *** *** and align=middle doesn't seem to work with Internet Explorer *** *** perhaps, align=center or align="center" or align="middle" *** *** or align="absmiddle" will. ***Technically, both beta and beta2 are identical characters, except that beta2 is a larger graphic in the vertical direction and there is a subrectangle of blank (actually transparent) pixels at the bottom for centering.
Display of countersOne way to get a counter displayed in (for example) the page ugnews.html is to include <IMG SRC="http://world.std.com/cgi-bin/nph-count?width=4&link= http://www.math.buffalo.edu/cgi/ugnews.html">This command asks for an image to be displayed, the source for the image being the site world.std.com. The width=4 specifies the number of digits in the counter to be displayed and will work o.k. if the count is at most 9999, at which point I expect it will behave like a car odometer and start over from 0.
Icons and ImagesAs of 19980823, all icon references in the www.math.buffalo.edu collection are (or should be) absolute references to .gif files stored in www.math.buffalo.edu/icons (actually, /home/faculty/httpd/icons ) and all image references are absolute references to .jpg and .gif files stored in www.math.buffalo.edu/images (actually, /home/faculty/httpd/htdocs/images ) (In the pages from 19970923 until 19980601, copies of icon and image files were stored in the www.math.buffalo.edu/ and in each dated subdirectory: this was messy)
The .cgi's for viewing course advertisements and
for viewing the archive of seminars and colloquia construct their
"top line" navigation bar by first reading the top line of
certain .html files in www.math.buffalo.edu; these were modified
on Aug. 23 to find the subdirectory where these .html files reside
by climbing up one level from the .cgi directory Transparent .gif filesDuring Fall, 1998 the home page was altered to include .jpg graphics with the seal of the newly created College of Arts and Sciences and with the logo. The designer of these graphics intended that they be used on a plain white background. On 19990217, the graphics were changed to transparent gifs which look better on the paper1.gif background. Tools Paintshow Pro, XV and giftrans were used to perform the conversion.
Redesigned control barAs of 19990312, smaller direction arrow icons fwd_yel8.gif, back_yel8.gif and up_yel8.gif are used, and a slightly smaller font, "Arial,Helvetica" font, size=-1 is used in the control bar text. This change required
Legacy files-rw-r--r-- 1 sww 4471 Apr 4 1997 DNA_TOPOLOGY.html -rw-r--r-- 1 sww 562 May 2 1997 about_dept.html -rw-r--r-- 1 sww 34440 Apr 6 1997 grad_courses_description.html drwxr-xr-x 2 sww 13312 Aug 19 01:35 mad -rw-r--r-- 1 sww 8117 Aug 4 1997 mathfaculty_research.html -rw-r--r-- 1 sww 717 Feb 24 1997 mathfacultypics_official.html -rw-r--r-- 1 sww 7658 Aug 1 1997 mathgradstudents.html -rw-r--r-- 1 sww 1399 Apr 4 1997 myhill_lecture.html drwxrwsr-- 2 ringland 512 Aug 19 1995 official -rwxrwxr-- 1 ringland 2278 Sep 23 1997 undergrad_index.html -rwxrwxr-- 1 ringland 940 Sep 23 1997 unofficial.htmlshould be cleaned out, except for the "mad" directory . A tool to view the history of the www.math.buffalo.edu collectionA program that makes it easy to see previous versions of web pages and changes that have been made, is available:http://www.math.buffalo.edu/cgi/history.cgiSelect history and a list of the present html files in the math collection is displayed. Select a page. Then all different versions of the page are determined, the different versions and the differences between all different versions, may be displayed. The ims subdirectory 1997A directory http://www.math.buffalo.edu/ims was created to hold E. Bruce Pitman's proposal for and Institute for Mathematical Sciences.
The 306 subdirectory Fall 1998-presentA directory http://www.math.buffalo.edu/306 was created to hold course materials for MTH306 Differential Equations. The pages in this directory are not updated by the update procedure. Rather, they are updated by hand. The files within /usr/local/info/math/306 have been updated over the years, and include Maple code due to B.H., J.R. and J.J.F.The files 306ch0m9.mws, 306ch1m9.mws, 306ch2m9.mws, 306ch3m9.mws, 306ch4m9.mws, 306ch5m9.mws, 306ch6m9.mws, 306chXm9.mws, are example workspaces written in Maple 9 (and compatible with Maple 10) The "ch0" file is a first-lab intoduction to basic Maple commands; the "ch1", "ch2", .."ch6" and "chX" files correspond to the different chapters of the text.
Lists of email addresses/ alias files (19980824, B.H.)The program fac_gr_emails was originally developed to write files fac_emails and gr_email. Now it writes fac_emails.html as well. Select www.math.buffalo.edu/fac_emails.html to obtain instructions how to do a mass mailing, and lists of the faculty email addresses in comma-delimited, semicolon-delimited and one-per-line formats.To avoid inviting spam, the page is not linked from the www.math.buffalo.edu collection except from here, way down in the (boring to most) web-maintenace document. Instead, there is a note in the fac_staff_list.html page saying that if anyone needs to do a mass mailing, they should talk to Marie Bennett. The file fac_emails contains a single (long) line starting with faculty: and containing all of the faculty email addresses, comma-delimited. The file gr_emails contains a single (long) line starting with gradstudents: and containing all of the faculty email addresses, comma-delimited. In principle (does this still work?), these files are picked up regularly by a chron and made into aliases for a mailer (known to J.R.) that runs on the math dept. sun cluster. By logging onto a machine in this cluster and using this mailer, one may mass mail to all of the faculty simultaneously, or to all of those gradstudents who have agreed to have their email addresses posted on www.math.buffalo.edu.
New 4 U (19990320, B.H.)To flag which of the pages referenced from the homepage have changed since the user last visited the site, if
The JavaScript was incorporated in the homepage. The code is basically from the CDROM that comes with Danny Goodman's "JavaScript bible". date-time is measured in GMT milliseconds sinee the beginning of the unix era. When the user shuts down the browser, a cookie identified as "originating" from www.math.buffalo.edu and containing the current date-time, is written to the users hard disk. When the user revisits www.math.buffalo.edu this cookie is read by the browser, which then knows the date-time of previous access. The Javascript function "newAsOf" defined in the section, is called once for each page HREFerenced from the homepage, and takes as paramater a date-time string in human-readable form. The date-time strings in the newAsOf function calls must always be the most recent date-times at which the HREFerenced pages have been revised or updated. It was decided to incorporate the code to modify index.html and change the "newAsOf" date-times in ucnp5.cgi, the program that is used to process the "Update Calendars, News, .." form. Each time that any of the pages sem_coll.html, grnews.html, .. is updated, every html file HREFerenced from index.html and followed by a "newAsOf" call, is scanned for "Revised" or "Updated" date-times, and the "newAsOf" dates in index.html, are changed accordingly. The default date-times are all 1 second into the unix era, so by default, New 4 U icons are not displayed. The file index.htf is the prototype for index.html. It contains the Javascript 1.1 code for cookie functions and newAsOf. The file top_pages.txt defines item1, item2, item3 data for index.html. These items include "new4u" strings. The "new4u" is defined in top_pages.def, and consists of a JavaScript call to "newAsOf" with the default date-time. The 4 U icons will not be displayed immediately after the collection of pages has been recompiled, since all of the newAsOf dates are the default dates, the beginning of date-time in the unix era. To change rhe newAsOf dates to the correct values, webmaster must run the "Update Calendars News Postings" program, by posting some test data to the test page. This should be changed, so that the "update" procedure automatically runs the "Update Calendars News Postings" program, or at least that part of it, which modifies the newAsOf dates within index.html .
New Icons, Mar. 1999 B.H.With the introduction of a left side navigation table and the change to a smaller font on the labels of the controlbar, there was a need to reduce the size of the arrow icons on the controlbar. Semi-original artwork by B.H. using PaintShopPro combined the previous arrow icons (from the "HTML for dummies" cdrom), and a tiny 3-D blue arrow found somewhere on the web, to produce medium sized, shaded 3-D blue arrows on flat yellow buttons. To represent "search this site" on the level 1 pages, a magnifying glass icon with a matching shaded blue handle was then constructed. A good location for the compulsory CAS logo and seal, was found within a left side table on the homepage, shaded light blue like the navigation tables on the level 1 pages. Since there was a problem getting the pair of graphics to be positionned relative to each other the same way in Netscape as in IE, the logo and seal were combined into a single graphic. The seal, and the UB and the CAS of the logo, were all shifted slightly for aesthetics. The background color of the graphic was made transparent, so that the light blue of the side table would show through. The address of the department on the homepage, was moved to the left light-blue shaded table, below the top_left image of Diefendorf Hall and above the UBCAS graphic. Since the word "Mathematics" appears in black, Arial text, and in the level 1 pages the current page appears in black, Arial text in the similar left side light blue table, for consistency with the layout of the level 1 pages, the "Mathematics" logo on the homepage was changed to black, Arial text. To make it stand out, a drop-shadow effect (grey shadow on white button) was added. On the homepage, "University at Buffalo,State University of New York", and "College of Arts and Sciences", were placed in a control bar to the top of the "Mathematics" logo, and all 3 items enclosed in a rectangular yellow box, similar to the yellow controlbar-title boxes for the level 1 pages. New Format for index.html, Mar. 1999With the introduction of a left side navigation table in the level 1 pages, a similar layout was then adopted for the homepage index.html. A left side table shaded blue was introduced, with a small graphic of Diefendorf, followed by the department address. Instead of using a magnifying glass "search" icon, the text "search this site" appears below the address. The problem of finding a good location for the compulsory CAS logo and seal, was solved by placing them within the a left side table. Consistent with the design of the level 1 pages, the "Mathematics" logo on the homepage was changed to black, Arial text. To make it stand out, a drop-shadow effect (grey shadow on white button) was added. "University at Buffalo,State University of New York", and "College of Arts and Sciences", were placed in a control bar to the top of the "Mathematics" logo, and all 3 items enclosed in a rectangular yellow box, similar to the yellow controlbar-title boxes for the level 1 pages. To reduce the number of clicks for frequently accessed pages, direct links to sem_coll.html, fac_staff_list.html, and gr_student_list.html were placed on the homepage. Instead of an unordered list with bullets, the main table was implemented as a definition list (no bullets). The subitems then become parts of the
New Format for index.html, Apr. 1999Renee Ruffino of the Art department constructed a new "Mathematics" logo for the homepage, with the CAS seal followed by the word "MATHEMATICS" but with "A" and "E" replaced by Greek "Delta" and "Sigma". B.H. and M.J.C. did not like the use of "Delta" in place of "A". Pending a redraw of the logo, B.H. substituted a drop-shadow "Mathematics" in place of the Greekish text, and balanced the CAS seal with a small version of the architects sketch of the new Math building. At the same time, the links to UB, UB Wings, CAS and Search were placed in a table at the bottom of the page. New format for level 1 pages, Mar. 1999 B.H.Navigation tables on the left, inside light blue rectangles, were introduced Mar. 1999 to the level 1 pages Academics.html, Administration.html,.. The navigation table selection turns from a hyperlink to black text, to indicate the current selection. This is done without frames, so as to avoid the "stuck in a frame" problem, and was inspired by the AOL homepage. A 90 by 60 pixel image appears at the top of each navigation table. Each of the different level 1 pages should really have a different image, but initially, only Academics and Administration have unique images and the other level 1 pages use the same image of Diefendorf Hall. The basic layout used for each level 1 page, is table within table, with bgcolor to color the area of the innermost table. The left side navigation table is light blue (a "browser-safe" shade) and the top right control bar table is light yellow, (also a "browser-safe" shade). It was found necessary to make the table-within-table nesting a layer deeper than one might think, and to include data (even if just a non-breaking space) in every table entry, in order to get both Netscape and IE to render the page in similar manners. The format files for the level 1 pages are level1nt.htf, level1nt2.htf, special_pagesnt2.htf . The "nt" stands for "navigation table", and the "2" for "2 columns of main data". The special_pagesnt2.htf file, is similar to level1nt2.htf but includes thumbnail images. In top_pages.txt, in the data for each level 1 page, "top_left_image" and "navtable:" are defined. The strings appearing in these definitions, are themselves defined in top_pages.def. New format for index.html, Nov. 1999 B.H.To provide quicker access to the most frequently used pages, links to these pages are now duplicated in the homepage as is done on "Yahoo". The homepage was converted to a 2-column format to support the additional information. Fixed width pages, Nov. 1999 B.H.Previously, the pages stretched widthwise to fill any browser window. However, various pages didn't look very good on browsers with very large screens. The homepage and the pages of level 1 and level 2, were converted to have a fixed width of 600 pixels and to center within browsers windows, as done on "Yahoo".Posting Mathematics Course Web Page links, to centralized University databaseThere is a mechanism set up, perhaps within Registration, whereby instructors can link their Course Pages to the Class Schedule. This online form requires that the instructor know the course registration number. Unfortunately, these numbers are not all available online. If a course does not have a recitation/lab associated with it, then the registration number is indeed available online. However, to minimize mistakes by students, the registration numbers of courses that do have recitations/labs are not available online. On 11/04/99, B.H. obtained the registration numbers for all Mathematics courses that have web pages, from Rosemarie Marciniak, and then entered all of the links to math course web pages for Fall 1999 (and 438 for Spring 2000), into the centralized database. This work will need to be repeated each semester.Use of tables with graphic bullets instead of unordered lists Nov. 20 1999This change was performed to obtain better spacing between items and better looking bullets, in all of the pages that had previously employed unordered list structures (this includes all of the level1 and level2 pages). Single column layouts became tables with two columns, one for the graphic bullets and one for the items. Double column layouts became a pair or two column tables, both within a table. To implement these tables,
Different font sizes were adopted to for the links within items, and for the text explanations that follow immediately after the link. These changes required reworking
A small white ball was used to replace the black bullets previously generated by the unordered list mechanism UL. A charcoal grey ball might be more attractive, if one could be found (or created). Watermark background, grey "matting", and black outlining, Nov. 22-30, 1999
On static and dynamic IPs and the UB DHCP Maintenance Interface, B.H. Jan 2000Most of the machines in Diefendorf Hall use static rather than dynamic IP's. (IP = Internet Protocol numbers, ex. 128.205.76.38 for riemann.math.buffalo.edu).
New workstation class machines (Macs, Win 95/98/NT)
can be (perhaps more easily) configured using a
dynamic IPs. The web page
DHCP Service @UB
describes the process.
To get out of this trap, one may install a new ethernet card which will have a different ethernet address, or one may ask someone with administrative contol to remove the ethernet number of the NIC from the excluded database. The webpage that is used for administrative control of the DHCP database, is dhcp-ed.cgi.
The Beginning-of-Term Faculty Form program, B.H. Jan 2000The subdirectory http://www.math.buffalo/edu/bot was created to hold a beginning-of-term program by B.H. This program collects data from a faculty member using the program, from UB Wings, and from the Mathematics Department website to fill out and print beginning-of-term forms (grader request, schedule final exams, schedule Talbert office hours, directory information, current area, material for vita, department newsletter). When the faculty member clicks on the "submit" button at the bottom of this page, the forms (as needed) are printed, and are then hand delivered to the appropriate department mailboxes. For details on the current version of the program, see bot_readme.txt. For spring 2000 the program is called bot8.cgi, is running on the machine yellow.math.buffalo.edu and printing on the Apple LaserWriter in Rm. 121, Diefendorf Hall. The program files are backed up to the bot subdirectory on newton.
Search utility broken, Feb. 2000
Hello Brian,
The InfoSeek search engine on campus was upgraded shortly after the
new year. It became apparent after the upgrade, that search pages
required updates to their syntax as follows...
Remove the following line from your HTML page:
In January, we sent a message to the wings-ip list regarding this, and
we notified individuals as best we could (i.e. we do not have a list
of all Information Providers having search capabilities on their Web
page, so we attempted to find as many maintainers as possible). Our
on-line documentation has also been updated at:
http://wings.buffalo.edu/wwwlib/infoseek.html
Sorry about the inconvenience. Let me know how the fix works.
--Bob
-------
Bob Diem (diem@acsu.buffalo.edu)
Department Newsletter Math Matters posted to web, Mar. 2000Here is the subdirectory containing the Math Matters newsletters. To date, 4 newsletters have been published. These were prepared using WordPrefect 7 by Marie Daniel. B.H. set up the linux system "yellow" using samba to allow M.D. to mount a network disk that corresponds to the subdirectory /home/md/ of "yellow". M.D. copied the files Math Matters 0498.wpd Math Matters 1198.wpd Math Matters 0499.wpd Math Matters 1297.wpd to this location. For each file, B.H. then
Links from Calendars, News and Postings to locations within Newsletters, Mar. 2000Since the newsletters contain a "Message from the Chair" feature, as well as "Faculty News", "Student News", and "Alumni News", and since the mechanism that had been set up for automatically updating the pages chnews.html, ugnews.html and alnews.html had been infrequently used, the links from Calendars, News and Postings to these 3 pages were removed. In place of links to these files, the "Calendars, News and Postings" page now includes links to locations within the "Math Matters". (If the data access is slow, then the browser user gets to view the header of the Math Matters issue until the item of interest has loaded. This could be sped up a bit by decreasing the physical size of the scanned jpg image files.) Research Group(s) Mar. 2000Bruce Pitman suggested including in the faculty by research areas page, links entitled "Applied Mathematics Group" to the page that he maintains. This was done by creating a new .txt file, fac_groups.txt, which defines the name(s) of the research group(s) and the areas of interest. This file is appended to the list_by_areas.in2 file before list_by_areas.exe is run, and so a "pseudo" faculty name is listed in each of the areas. The group name is linked to a an html file with basically the same names as the group (spaces replaced by underscores). Online Graduate Application Mar. 2000Jim Reineck provided the link to an online graduate application form, which allows student(s) who can
Myhill Lecture page Mar/Apr 2000Marie Bennett prepared the flyer, which was copied onto paper with a grey gradient from one size, and a rose gradient from the other. She also mailed a Word Perfect 7 to html translated version of the document (no background)To create an appropriate background, B.H. started with a blue gradient box from Wings, used PhotoShop Pro to convert to a 256 level grey image, then increased the color depth to 16K (still grey), then made a copy of it, reflected it, colored it rose, and then copied and pasted portions of the grey and rose gradient images into a single 16K color level image. To ensure vertical periodicity, an image twice as large vertically was created by pasting together the image and a top-to-bottom reversed version of the image. The final image was obtained by reducing the color depth to 256, creating a .gif To ensure that the text was properly aligned on the background, the text was restricted to a 600 pixel wide box, with 20 pixel padding around the text (an html table was used, with one row and one table data item in the row). Text sizes were adjusted manually.
The page was myhill_lect_2000.html was then placed in the
/archive/ subdirectory and linked into the home pages from there.
This saves a little effort compared with the way it had been done in
previous years, i.e. placing the page in the home directory, and
then moving it to the /archive/ directory after the lecture.
The downside is that the "new4U" mechanism may not
recognize the page as being "new" since it isn't in the home directory.
Level 1 graphic changed ro "The" State University of New York Apr. 7 2000The most official name of the university was changed from "University at Buffalo, State University of New York" to "University at Buffalo, "The State University of New York".The "letterhead" style graphic used in the Level 1 pages was changed as follows: The graphic file icons/DeptofMath4c1.gif was brought into PaintShop Pro. The canvas size was increased, and the color depth was increased; (On a 256-color graphic (.gif) text that is placed in the graphic is not anti-aliased and so appears chunky.) The phrase "State University of New York" was cut from the graphic. Times Roman bold italic size 11 was used to insert the phrase "The State University of New York". The graphic with the new text was then converted back to a 256-color graphic, but it was found that the background color had changed, and that the phrase "University at Buffalo" in blue, had degraded.
To avoid this degradation, the original graphic DeptofMathc1.gif
was again loaded into PaintShop Pro and the canvas size increased,
but the color depth left unchanged (256 color gif.) Then
the phrase "The State University of York" was copied in from the
256-color version of the editted graphic.
The final result was uploaded to
icons/DeptofMath4c1c.gif, and
the file top_pages.def was
changed so that
the symbol
mb2imgc represents the new graphic,
so as a result
the symbols
math_banner2 and math_banner3 which use the
symbol mb2imgc, reflect the change.
Math Major Slide Presentation April 2000For Open House day April 8 2000, Maria Daniel prepared a Powerpoint presentation. Instead of saving it to a CDR, it was decided to put this presentation on the department web server, so that potential math undergraduates could view it.
M.D. and B.H. used Powerpoint to prepared an animated html
version of the presentation, storing the output in a subdirectory
of "My Documents" on M.D.'s PC. The contents of this subdirectory
were then moved (using ftp from an MS-DOS box) to the subdirectory
/mathmajorsp00/ of newton.
To solve this problem, B.H. wrote perl scripts that
The ".html" converted version of the presentation then worked correctly with I.E., after downloading and installing the Powerpoint animation viewer for Activex, from MS. The page /mathmajor/index.html also displayed correctly under Netscape, except that it also required downloading an animation viewer for the slideshow itself, and efforts to do so failed (Apr. 7). The remaining option is to prepare a static version of the presentation with user-controlled paging, which could be viewed using Netscape. As of Apr. 7, the slide presentation can be viewed with Internet Explorer 4.0, at http://www.math.buffalo.edu/mathmajorsp00/but is not linked in from elsewhere in the Department pages.
MTH 141 webpages 1999 Judith C. GeberaAn undergrad student project designed a collection of pages helpful to Calculus I students, viewed by visitinghttp://www.math.buffalo.edu/141/ Files in the corresponding directory /usr/local/info/math/141 are not modified by the update procedure.
Course Web Pages Fall 2001Starting with Fall 2001, there has been a page called course_web_pages.html listing the departmental courses which have web pages.The program /usr/local/into/math/util/cwp_anyterm.pl is used to construct a file cwp.htf which is then used as data to generate the page course_web_pages.html during the processing of top_pages.txt. The data for cwp_anyterm.pl consists of the files
The program cwp_anyterm.pl compares the last name and first initial
of individuals listed in fac_staff_list.txt to the last name and first
initial of instructors listed in either of the due or grad course
listings. If there is a match, and if the fac_staff_list.txt file
contains a "course1page" or "course2page" links such as
Course Handouts Fall 2001-Spring 2002The pages http://www.math.buffalo.edu/course_handouts/fa01/index.html http://www.math.buffalo.edu/course_handouts/sp02/index.html present the collections of course handouts from these terms. The individual course handouts are stored as jpgs in /usr/local/info/math/course_handouts/fa01 and in /usr/local/info/math/course_handouts/sp02 There were links from the main departmental web pages to these course_handouts pages 2001-2002. Maintaining the collection of such pages was a little tedious, as it required scanning copies of the course handouts. The files in course_handouts are not modified by the update procedure.
Syllabi Fall 2004A subdirectory /usr/local/info/math/syllabi was created to store sample course syllabi prepared by J.R.: these have names such as syllabus_mth???.pdf where the course numbers are: ???= 115, 121, 122, 131, 141, 241 306, 311, 411 These pdf files do not change when the update procedure is applied.
Email graphics Fall 2004To try to reduce the potential for spam directed at departmental e-mail addresses, relatively crude graphics were used to replace text listings starting Fall 2004. These graphics are regenerated each time the collection of pages is recompiled with "update", and are stored as "gif" files in the directory /usr/local/info/math/icons/ The programs used to generate these graphics are /usr/local/info/math/util/emailgraphics?.pl, where ?=1,2,3,4,5
Undergraduate Course Listings from Online Undergraduate Catalog, Jul 28, 2005Sometime during FA04 or SP05, the Online Undergraduate Catalog improved by including links to prerequisites. The differences between the course listing information given in http://undergrad-catalog.buffalo.edu/academicprograms/mth.shtml#courses with links to course description and registration information, such as http://undergrad-catalog.buffalo.edu/coursedescriptions/index.php?frm_abbr=MTH&frm_num=141 and the MTH website information ug_course_list was small: there were links from ug_course_list offered background information on the subjects but no links to course information. For simplicity, the MTH website ug_course_list was dropped in favor of the online catalog information. Technically, this required modifying the program make_pages so that strings such as "MTH 141_" and "MTH 418_" in txt and htf files, were translated into links to undergraduate catalog course description links like the one given above. Strings such as "MTH 511_" where the course number begins with a digit 5, 6, 7 or 8, are still translated into links to tags within the gr_course_list page. Withing the program make_pages, it was necessary to increase the string size for the string "location" and related strings, from 80 to 99 characters.
Small steps towards development of a LAMP-based version of the Math website, Summer 2006Subdirectories www.math.buffalo.edu/lamp1 www.math.buffalo.edu/lamp2 www.math.buffalo.edu/lamp3contain initial development versions of potential replacements for the Math website, based upon a LAMP server. LAMP stands for (Linux, Apache, MySQL, PHP), and there are various web development packages available. B.H. had Node Services set up a MySQL username/password for this purpose, and tried some basic "lamp": see http://math.buffalo.edu/lamp1 http://math.buffalo.edu/lamp2 http://math.buffalo.edu/lamp3 Files in these subdirectories are not modified by the update program
www.math.buffalo.edu/printers Fall 2008Subdirectory /usr/local/info/math/printers contains php scripts that display printer setup instructions, for printerx where x=1,2,a,b,c,d and for operating systems for MacOS, gnome (linux), Windows XP and Windows Vista. Files in this directory are not changed by the update procedure: rather, they are changed by hand. There are individual "php" scripts which are invoked for each of these different operating systems. Use of php allows passing the printer identification php script, which then writes the appropriate html.
The files are currently xp_printerxsetup.php
vista_printerxsetup.php,
index.php,
gnome_printerxsetup.php,
mac_printerxsetup.php
|
|