Multics > About
25 Sep 2021

Web Site Design

History | People | Library | Sites | About Search

Tom Van Vleck Web Site

The Multics website was begun by Tom Van Vleck in 1994, as a way to put the content of USENET group alt.os.multics on the new World Wide Web. After over 27 years, the website has grown to 474 HTML files comprising over 500,000 lines, plus 673 PDF files, thanks to the contributions of many Multicians. This page is a guide for editors of the Multicians web pages.

There are PowerPoint Slides describing the site's features.

I have written a page on Creating a Computer History Website with examples from

The web site can be hosted on a basic web server, such as Apache. The site is implemented with static web pages and graphics, and can be viewed with modern web clients on a range of devices.

Since 2001 has been hosted at Pair Networks Inc in Pittsburgh PA. At various times, mirrors of the site have been hosted on other web servers: when trans-Atlantic web speeds were low, Dave Vinograd arranged for a site mirror at City University London from 1995 until 2002; Paul Green mirrored the site at an FTP server at from 1995 to 2017; and jason andrade mirrored the site at Planet Mirror in Brisbane AU from 2003 to 2008. None of these mirrors are currently active.

2012 Design Changes

  • Design Refresh. The website had a substantial design refresh in Oct-Nov 2012. All pages were reformatted, in many cases by changing the wrapper macros only.
    • Redesigned home page: wider, more open layout with larger print. Simplified the home page generation. Eliminated home-brew indexing, used Google custom search instead. Removed random picture picker and its iframe, added a JQuery based picture gallery using EasySlider. Removed long disorganized list of contents that duplicated the menus. Many thanks to Lilli Filichia for design and layout advice.
    • Reorganized the menu headings and categories: History, People, Library, Sites, About. Moved some pages from Stories to Articles. Eliminated general.html, moved its parts elsewhere. Added a "pathname" indicator to page headings to help users know where they are.
    • Provided one-level drop-down menus on almost all pages, generated from menubar.sql, shown using JQuery. Only one level (ie no staircase). If JavaScript is not enabled, the menu degrades to single menubar. The tail of every page has links to the other L2 pages in the category, and all pages have links to the L1 category heads, so that there is a path to all pages if the menus are not shown (small window, or JavaScript not enabled).
    • Converted all pages to HTML5. Improved layout and loading speed of image gallery and some other pages that use images.
  • Mobile Devices. Google Webmaster Tools informed me that some pages were hard to read on mobile devices. I made some fixes in July 2015. More work is still needed.
    • Item smallscreensize in config2.htmi defines the width of a "small" screen. It is currently 600px.
    • Pages that can be reformatted to a narrow window set the viewport, and add CSS that hides the JavaScript menus and displays an alternate simplified menu bar if the screen is small.
    • For small windows, the home page also uses conditional CSS to eliminate some padding and floating of elements.
    • Some pages, e.g. source code, MTBs, and papers, cannot be reflowed to a small window. For these, we leave the viewport alone and let the user scroll right or left as necessary.
    • Some pages contain tables that cannot be reflowed into a small window. No viewport is set for these.
    • About 80 picture elements are too wide for a small viewport, so they require horizontal scrolling. Eventually I will provide alternate content.
    • Tablets and mobile phones do not support HOVER (menus, links). Pages do not depend on this for navigation, though it may be less convenient.
    • Tablets and mobile phones do not support TITLE to show a tooltip, as is generated for Glossary, page, and Multicians references. There is no alternate way to provide this info.
  • Other global changes to the website's HTML are described under "Implementation" below.

Site Design Rules

This section describes the goals and design choices to accomplish these goals for


Unix tools flow

Each page's organization

Where different kinds of information goes

Low-Level Implementation

Wish list, future tasks

Mail-related Web Services

Mail to Multicians

The web site provides links to send mail to Multicians who have registered their mail address with the site administrator. In order to prevent spammers from harvesting the mail addresses, the mail is composed and sent using CGI programs that run only on the "mail host," currently

Links to send mail to Multicians are found in the page multicians.html and in the tail matter of pages. These links invoke a CGI program on the configured mail host that generates an HTML page with a form for typing and sending the message. The page includes a randomly generated challenge question to use as a "human interaction proof."

The mail composition form CGI checks the IP and referrer of the page that invoked it, and returns an error if the form is used from an IP that does not officially host the site. The form CGI does other consistency checks to try to filter out spurious invocations: it rejects apparent attempts to send junk mail.

Clicking SEND to submit the mail composition form invokes a second CGI on the mail host. This CGI does additional consistency checks to try to filter out spurious invocations, and checks that the response provided by the user to the challenge question is correct. The outgoing message is rejected if it appears to be spam, or if a sender appears to be sending too many messages. The CGI then looks up the recipient name in an SQL database that contains the protected mail address, formats and sends the mail message, and generates and displays a confirmation HTML page.

Registering Multicians

The web site provides a web form for Multicians to register themselves on, or update their entry in, the page multicians.html. This form invokes a CGI program running on the mail host that checks the form content and sends mail to the site editor, who verifies the information and manually updates the SQL source for the database of Multicians and their addresses. The registration page looks up partial user names in an online SQL database using an Ajax request to make updating the form convenient for users. The Ajax return value does not reveal the user's mail address: it just says "(on file)" if the database has a nonempty value. After sending mail to the editor, the registration CGI displays a confirmation HTML page.


Detailed instructions for maintenance tasks for are listed in Maintenance tasks for the Multicians Website.
Details about the site build process and tools for are listed in Build process for the Multicians Website.