Multics > About
16 Oct 2024

Web Site Design

Tom Van Vleck

multicians.org Web Site

The Multics website was begun by Tom Van Vleck in 1994, as a way to display the content of the FAQ files for the USENET group alt.os.multics on the new World Wide Web. After over 30 years, the website has grown to 487 HTML files comprising over 540K lines, 662 graphic images, and 1794 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 multicians.org.

The multicians.org 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 multicians.org 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 Stratus.com 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 multicians.org 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. Navigation is consistent: the menus are the same on all pages that use them. Moved some pages from Stories to Articles. Eliminated general.html, moved its parts elsewhere, mostly to history.html. Added a "breadcrumbs" path name indicator to page headings to help visitors know where they are. Every page with menus has the same menus.
    • Provided one-level drop-down menus on almost all pages, generated from menubar.sql, shown using JQuery. Only one level of menus (ie no staircase): this reduces the number of times that an unchanged page has to be regnerated. If JavaScript is not enabled, the menu degrades to a single menubar. The tail of every page has links to the other level-two pages in the category, and all pages have links to the top-level category heads, so that there is a path to all pages if the menus are not shown (e.g. in a small window, or when JavaScript is not enabled). These linage rules also ensure that even if a web crawler does not use sitmemap.xml, it can still discover all pages on the site.
    • Converted all pages to HTML5 and checked them with W3 Validator. Improved the layout and loading speed of image gallery and some other pages that use images.
    • Created automation for site building and deployment using the make command. A one-line change to a page can be compiled and deployed to the hosting server in about a minute.
  • Mobile Devices. Google Webmaster Tools informed me that some pages were hard to read on mobile devices. I fixed most pages in July 2015, and updated the "alternate menu bar" in November 2022. More work is still needed.
    • Item smallscreensize in config2.htmi defines the width of a "small" device screen. It is currently 600px.
    • Pages that can be reformatted to a narrow device window set the viewport, and add CSS that hides the JavaScript menus and displays an alternate simplified menu bar if the screen is small. (Smartphones do not support HOVER so the dropdown menus are hard to use on these devices; the simplified menus don't depend on the feature. The simplified menus are initially hidden until the user clicks "MENU" -- the hidden state is in an invisible checkbox.) Most pages were reformatted. A few page wrappers do not set the viewport.
    • The alternate simplified menu bar shows the same first and second level headings as the drop-down menus do, except that the Sites menu item does not list the 40 or so site biographies, because the list would use too much screen space. The full list of sites is one click away.
    • 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 visitors scroll right or left as necessary. MTBs cannot be reflowed, so mtbwrapper.htmi does not set the viewport. Conference papers cannot be reflowed, so paperwrapper.htmi does not set the viewport. A few wide pages, like site-timline.html, cannot be reflowed, so widepagewrapper.htmi does not set the viewport.
    • For small device windows, the home page multics.html also uses conditional CSS to eliminate some padding and floating of elements.
    • Some pages contain tables that cannot be reflowed into a small window. No viewport is set for these. The tables can be viewed by scrolling left and right. Over time these tables should be eliminated. (For example, sites.html replaced a TABLE with a list of DIVs with the use of FLEX.)
    • About 80 picture elements are too wide for a small viewport, so they require horizontal scrolling. Eventually I will provide alternate content using CSS. I have a list..
    • Tablets and mobile phones do not support HOVER (menus, links). Pages do not depend on this feature 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 multicians.org.

Implementation

Unix tools flow

Each page's organization

Organization of Categories

The red menu bar at the top of most Multics pages shows six categories.

Low-Level Implementation

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 multicians.org.

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, written in Perl, 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. The generated form does not contain the mail address of the intended Multician recipient.

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 visitor 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 on the mail host that contains the protected mail address, formats and sends the mail message, and generates and displays to the sender a confirmation HTML page.

Spam Protection

gmail.com started rejecting mail messages sent by CGIs at multicians.org in February 2024, because the messages did not have DKIM headers. The multicians.org mail sending machinery was changed to include DKIM and SPF records in the mail headers.

At that time, 72 Multicians had registered mail addresses at multicians.org and have their messages forwarded to their private addresses via a procmail script running on the mail host.

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 Multician names in an online SQL database using an Ajax request to make updating the form convenient for visitors. The Ajax return value does not reveal the Multician'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.

Wish list, future tasks

Details

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