Reading view

There are new articles available, click to refresh the page.

A brief history of the Chooser and printer support

How many design and print shops started off with two Macs and a printer, and blossomed with the desktop publishing revolution of the 1980s? Yet when it was first launched, the Mac had poor printer support, and didn’t even have a parallel port, then the standard for office printers. In June 1984, Apple released the first printer designed for the Mac, the dot-matrix ImageWriter with a serial port. The following March came the LaserWriter, featuring PostScript and LocalTalk. The latter was a poor man’s Ethernet, running through an RS-422 port over cheap and simple LocalTalk cabling.

Printer support software was initially primitive, with a small desk accessory named Choose Printer to select which port and driver to use. In System 7 (1991), this became an app in its own right, the Chooser, to handle both printer and network connections.

chooser2001

Printer setup was handled through the Chooser too.

chooser22000

Printer configuration used PPD files for each model of supported printer.

chooser32000

print2file1998

The print dialog supported printing to file as well, although in those days that most commonly generated raw PostScript files rather than PDF.

By 2001 with Mac OS X, printing and networking had become so separated that the Chooser was replaced by the Print Centre, although OS X was still in need of a full print architecture. That arrived in 10.2 (2002) in CUPS (originally the Common Unix Printing System), which had been developed by Michael Sweet.

In Mac OS X 10.3 (2003), Print Centre was replaced by the Printer Setup Utility app, with a pane in System Prefs and later System Preferences. That was initially named Print & Fax, then Print & Scan in 10.7 (2011), and became Printers & Scanners from 10.9 (2013).

printers2006

Printer Setup Utility became increasingly complex. Here it is in Mac OS X 10.4 Tiger in 2006, when it supported a variety of printer connections, and drivers for each of the more popular models from many manufacturers.

printersetuprepair2007

CUPS is powerful and sophisticated, with its own repair feature.

printinstall32001

In 2001, the Network pane was still used to configure AppleTalk, as supported by Apple’s own printers, the last of which had been discontinued in 1999.

printerutility2002

In 2002, Printer Utility still showed its influence from the Chooser.

PrintDialog2001

This is the Print dialog from 2001.

print&fax2010

This is the Print & Fax pane from System Preferences in Snow Leopard, in 2010. Note that this includes a scanner, although the pane wasn’t renamed to Printers & Scanners until 10.9 (2013).

OS X incorporated its own printer drivers as well as those provided by printer manufacturers, a feature that was transformed when Apple introduced AirPrint (in conjunction with Hewlett-Packard) in late 2010, primarily to support printing from the iPad. Although AirPrint didn’t come to OS X until 2012, since then support has grown to become almost universal, over a period in which most printers have become less used, to the point where many now just sit gathering dust.

A brief history of QuickDraw and PICTs

The original Macintosh running Classic Mac OS was dependent on a great many components, but the most important of all was its graphics system QuickDraw. Without that, none of the windows, icons and images that were composed into its human interface would have happened. Although almost everything from QuickDraw has now been superseded and removed from modern macOS, you can still open most of its QuickDraw images saved in its custom format, PICT.

QuickDraw

QuickDraw was originally written by Andy Hertzfeld (b 1953) and Bill Atkinson (b 1951), who devised a remarkably innovative raster-based system, and implemented it to perform exceptionally well on the limited hardware available, starting with an 8 MHz 68000 CPU with only 128 KB of memory. It’s based around a logical drawing area called a GrafPort, which can be that within a window, the whole Desktop, or somewhere off-screen.

GrafPort coordinates set their origin at the top left and are signed 16-bit integers, giving a range of -32,767 to +32,767. Coordinates refer not to the pixels within the GrafPort, but to the infinitely thin lines between them. When drawing along a line between two coordinates, the thinnest line shown is a series of pixels below and to the right of the line. Pixels are square, and their default resolution conforms to the printing standard of 72 pixels/points per inch, just over 28 per centimetre. These were essential, to ensure that what you saw on the Mac’s display was what you got from the printer, WYSIWYG.

QuickDraw has commands to support a good range of graphics primitives, but Bill Atkinson’s stroke of genius was the data structure known as a Region, an arbitrary set of pixels that didn’t even have to be contiguous. Although initially constrained to 32 KB of memory, rising later to 64 KB, Regions can be combined with others, differenced, and manipulated in other ways. Their internal structure remains largely opaque, apart from the technical description used by Apple in its patent.

Picture and PICT

The other key data structure in QuickDraw is a Picture, the series of QuickDraw operations called to generate or manipulate images within a GrafPort. Those can be recorded, and played back later to repeat generation of that image, perhaps in a different GrafPort and coordinates. Rather than standardise on a raster graphics file format, QuickDraw saves Pictures in PICT files.

Initial releases of QuickDraw only supported black and white images, although limited colour support was added to work with Apple’s four-colour dot-matrix printer, the ImageWriter II of 1985. For the release of the Macintosh II in 1987, QuickDraw was extended to Color QuickDraw using CGrafPorts with 8-bit video cards. It was later enhanced to support 32 bits per pixel, in what is commonly known as 32-bit QuickDraw. The PICT file format had a similar journey. Originally, it only supported eight colours in PICT 1, then PICT 2 brought 24-bit colour and greyscale.

Examples

Here are some examples of QuickDraw graphics from Mac OS 9 in 2000, each converted from its original PICT screenshot taken 24 years ago.

qdfreehand

This is Macromedia (also Aldus) FreeHand, then a competitor to Adobe Illustrator, before it was finally killed by Adobe in 2003.

qdconceptdraw

This is Computer System Odessa’s ConceptDraw, then a new product, and still available for macOS.

qdstrata3d

This is Strata 3D, a high-end 3D modelling app first released for the Mac in 1988 and still available.

qdcvgs

This is a typical role-playing game of the day.

qdxplane

This is X-Plane flight simulator by Austin Meyer of Laminar Research, first launched in 1995, and still going strong with support for Apple silicon Macs.

Quartz

Apple adopted a new graphics system for Mac OS X, although to begin with 32-bit Colour QuickDraw was retained in its Carbon API. Its replacement, Quartz, is built around PDF 1.4, but performed poorly until Quartz 2D Extreme in Mac OS X 10.4 (2005) offloaded its rendering to early GPUs. With that, QuickDraw was deprecated, and support successively removed, although there are still some graphics apps like GraphicConverter that can open and convert PICT files. Preview used to be able to as well, but that too seems to have been removed.

Documentation

You can still read Apple’s detailed guide to QuickDraw, Pictures and PICT files in Imaging with QuickDraw, which also gives you an idea of the depth and quality of Apple’s documentation in the past.

A brief history of the Finder Alias

It wasn’t until System 7 in 1991 that the Mac gained any feature that let the user create links to files or folders. Without a command shell, Unix traditions of symbolic and hard links weren’t available. Apple belatedly added what it termed an alias, created using the Make Alias command in the Finder’s File menu. This made a document-like object bearing the name of its original with alias appended, displayed in italics to distinguish it from the original. To help users locate the original file for an alias, the Finder’s Get Info dialog gained a button to Find Original, later moved to the File and contextual menus.

Later versions of classic Mac OS added refinements to this transformative feature, including the selection of a new target for a broken alias, creation by drag-and-drop of a file or folder with the Command and Option keys held, and a distinctive arrow badge to both the item’s icon and the pointer during drag-creation.

Internally, the alias was a small file of less than 5 KB size containing opaque data with more information than just the path to the original. Aliases were designed to support free movement within the same file system, at the time an HFS volume (or partition, as they’re the same in HFS and HFS+).

Aliases transferred across to Mac OS X, where the more adventurous could open Terminal and create both symbolic and hard links instead. It has remained a sign of the lasting schism between the GUI and Unix internals of Mac OS X that there are no standard command tools supporting Finder aliases, and there’s no way to create or maintain symbolic or hard links in the Finder.

Something happened to aliases when they transitioned into Mac OS X, and their size started to rise steadily until they reached 1-5 MB in El Capitan.

aliastiger104

Back in Mac OS X 10.4 Tiger they were still fairly small, this one at 48 KB. Note the Select New Original… button in the Get Info dialog.

Aliases were all very good for the user, but OS X needed something similar that could be stored in property lists and other files, so the alias format was rejigged into more generalised form as the bookmark, introduced in OS X 10.6 in 2009. In early 2012 with 10.7.3, bookmarks could be security-scoped with permission on a per-app or per-document basis, to enable their use with the app sandbox. By OS X 10.9 Mavericks in 2013, bookmarks were in widespread use throughout the system.

aliaselcap1011

In El Capitan (2015), bookmark size often reached 1 MB, while the Select New Original… button remained the same in the Get Info dialog.

macOS Sierra brought a major revision to both aliases and bookmarks, reducing their size substantially, but bringing other problems. As late as 10.12.1 they were still having problems resolving some links. The end result was worth the struggle, though, as they have since become more robust than ever, with a typical size of only 1 KB, making them almost as efficient as symbolic links.

Although aliases and bookmarks are still intended to be treated as opaque, their contents have become more accessible. Among the useful values each contains are:

    • _NSURLPathKey gives the full path to the file,
    • _NSURLFileIDKey gives the inode number of the file,
    • _NSURLBookmarkURLStringKey gives the file’s full URL,
    • NSURLCreationDateKey gives the file’s creation timestamp,
    • NSURLIsRegularFileKey indicates whether it’s a normal file,
    • NSURLIsPackageKey indicates whether it’s a package rather than a file,
    • _NSURLBookmarkSecurityScopeCryptoKeyKey is used if this is a Security-Scoped Bookmark, most used with sandboxed apps.

I even have a couple of utilities that work with them. Among the many features of Precize is the ability to generate bookmarks, and to analyse and resolve them. For those who want to bridge the divide between the GUI and command line, alisma is a tool that can both create aliases and resolve them to paths. Finally, Alifix helps you refresh and identify broken aliases.

❌