Xerox PARC is famous for being the incubator for some of the coolest innovations in technology, including Ethernet and computer networking, the laser printer, object-oriented programming, and much more.
The many brilliant minds at PARC also put together a series of reports called the Blue and white series. These dealt with a wide range of issues from networking, to databases, programming, and beyond.
We have picked out 10 reports from the Blue and white series, all full of great stuff.
Much of what is discovered and discussed in these reports has now been superseded by something else, as is the way in technology. But that doesn’t mean there is not a lot to learn from reading them.
Note that each link below will take you to a PDF file. You can find many more of these reports here.
Ethernet: distributed packet switching for local computer networks: November 1975
Ethernet is a branching broadcast communication system for carrying digital data packets among locally distributed computing stations. The packet transport mechanism provided by Ethernet has been used to build systems which can be viewed as either local computer networks or loosely coupled multiprocessors… Design principles and implementation are described based on experience with an operating Ethernet of 100 nodes along a kilometer of coaxial cable. A model for estimating performance under heavy loads and a packet protocol for error-controlled communication are included for completeness.
A stylus-based user interface for text: entry and editing: May 1991
We describe a system for entering text with a stylus and investigate user interface techniques for interfacing with a text recognizer, concluding that a stylus is a feasible input device for entering small amounts of text… We conclude that stylus-based systems can be easy to use and learn and lend themselves to the incorporation of knowledge about users’ tasks.
The optical mouse, and an architectural methodology for smart digital sensors: August 1981
The optical mouse is a pointing device for controlling the cursor on a personal workstation display; the mouse is held in one hand and is moved around on a pad to move the cursor on the display. Unlike earlier electro-mechanical mice, motion is detected optically by watching the pad, so there are no internal moving parts.
Alto: a personal computer: August 1979
The Alto is a small computer system designed in early 1973 as an experiment in personal computing. Its principal characteristics, some of the design choices that led to the implementation, and some Of the applications for which the Alto has been used are discussed.
The Yggdrasil project: motivation and design: October 1991
The Yggdrasil Project has been concerned with the design, building, and operation of a large scale, persistent information storage server. The novel parts of this system are that it supports multiple data models, merges file server and database server implementation, scales both in record size and server total size, has set based properties, and provides non-navigational access to hypertext.
Real programming in functional languages: July 1981
The established properties of functional languages-easy to define semantics and
mathematical elegance—are appealing to meta-programmers who study programming and programs
at one remove. Most people believe that functional programming is inappropriate for real
programmers who write programs that are judged on their behavior rather than their appearance. We shall explore this question by considering experience with two languages, Poplar and Euclid, that have a claim to being functional languages and to being used on real problems-string processing and system programming, respectively.
Raster Graphics for Interactive Programming Environments: June 1979
Raster·scan display terminals can significantly improve the quality of interaction with conventional computer systems. The design of a graphics package to provide a “window” into the extensive programming environment of Interlisp is presented. Two aspects of the package are described: first, the functional view of display output and interactive input facilities as seen by the programmer, and second, the methods used to link the display terminal to the main computer via a packet·switched computer network. Recommendations are presented for designing operating systems and programming languages so as to simplify attaching display terminals. An appendix contains detailed documentation of the graphics package.
Pup: an internetwork architecture: July 1979
Pup is the name of an internet packet format (PARe Universal Packet), a hierarchy of protocols, and a style of internetwork communication. The fundamental abstraction is an end·to·end media· independent internetwork datagram. Higher levels of functionality are achieved by end·to·end protocols that are strictly a matter of agreement among the communicating end processes.
Device independent color reproduction: April 1992
There are many digital color devices: monitors, printers, film and video recorders. The goal of device independent color reproduction is to provide a single, standard representation of color that can be rendered on different media to produce the same visual result. Such representation must go beyond the CIE standards to include information about inter-color relationships and media
appearance. The goal of these notes is to provide an overview of current practice in this area, plus information on colorimetry, additive and subtractive color systems, and color reproduction practice, all as applied to the problem of device independent color.
Information storage in a decentralized computer system: June 1981
This paper describes an architecture for shared information storage in a decentralized computer system. The issues that are addressed include: naming of files and other objects (naming), reliable storage of data (stable storage), coordinated access to shared storage (transa~tional storage), location of objects (location), use of multiple copies to increase performance, reliability and availability (replication), dynamic modification of object representations (reconfiguration), and storage security and authentication (protection).