Multics > About
08 Jul 2020

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 26 years, the website has grown to 469 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.

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.

Recent 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 config.htmi defines the width of a small screen. It is currently 600px.
    • On 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.
    • On the home page, for small windows, also use 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, 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. Don't set the viewport for these.
    • About 84 picture elements are too wide for a 320-pixel viewport, so they require horizontal scrolling. Eventually I will provide alternate content.
    • Tablets and mobile phones do not support HOVER (menus, links). Make sure that we do not depend on this for navigation.
    • Tablets and mobile phones do not support TITLE to show a tooltip, as is generated for Glossary, page, and Multicians references.
  • 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 form includes a randomly generated challenge question and its answer to use as a "human interaction proof." Clicking the SEND button invokes a second CGI that verifies the challenge and sends the message.

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 CGI does other consistency checks to try to filter out spurious invocations: it rejects apparent attempts to send junk mail.

Submitting the mail composition form invokes a mail sending CGI on the configured mail host. The CGI does other consistency checks to try to filter out spurious invocations. It also 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, and formats and sends the mail message.

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 to check the form content and send 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.


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.