Overview

I've built a lot of conceived, designed, and built a lot software over
the years, frequently with the help of others. I have documented much of
this work in on other, thematically organized pages, including
agent software implementations,
architectures and systems,
new communication media, and
hypermedia spaces. This section documents
software that doesn't fit into any of those categories. Most of it is
either desktop productivity or utility software. Unlike other sections,
where content is listed chronologically, this section features the most
important software first, starting with the software that, in its
Windows Explorer (formerly Windows File Manager) variant, is probably
my most successful effort, at least in terms of impact on the way
everybody uses and manages their computers.

FILEMAN (1984)

File Manager was, if not the first, certainly one of the first menu-driven
file management programs (the only roughly contemporary competitor I'm
aware of was the much less functional Lotus file manager that shipped,
at about the same time, with Lotus 123 version 2). Developed specifically
to solve a time consuming consulting problem. At the time of implementation,
DOS 2.0 had just been released and many users did not understand that the
new subdirectory feature had to be used if one was to make practical use
of a fixed disk (the root wouldn't accept more than about 250 files). While
the use of FILEMAN reduced the time required to reorganize a fixed disk
from hours to minutes, the general purpose file management capabilities
of FILEMAN made it an immediate hit with users for a whole variety of purposes.
Indeed, we received so many requests for new function that we made FILEMAN
end user configurable, allowing users to add their own functions. FILEMAN
is still widely used, and a new versions continue to be released by volunteer
programmers. FILEMAN (and its companion subdirectory management program,
STP) is a part of the source code base of the IBM DOS Shell,
the OS/2 File Manager (first released with OS/2 1.2), and (by way of the
latter) the MicroSoft Windows File Manager (MicroSoft not only used the
source code under its joint development agreement with IBM, but eventually
hired away the OS/2 File Manager programming team in Hursley). My concept
and design based, in part, on my earlier SUBDIR. Initially developed with
Clark Maurer. Reimplemented (as FILEMAN2) with Richard Redpath.
Has passed through several hands since, and is still maintained,
developed, and widely used.

STP (1985)

As FILEMAN gained in popularity it rapidly became
apparent that its file management capabilities were inadequate to the requirements
of large scale hard disk maintenance. Erasing, moving, and copying whole
directories was not the kind of thing it was good at. SubTree Plus (STP)
was designed specifically to solve these problems by depicting and allowing
direct manipulation of the subdirectory structure of a hard disk. STP is,
to my knowledge, the first program to implement a directly traversable
subdirectory tree or to allow direct manipulation of subdirectories and
subdirectory content. It has, like FILEMAN, enjoyed tremendous popularity
and is still in use today (new version continue to be released by volunteer
programmers). It is also part of the source code base of the IBM DOS Shell,
OS/2 File Manager, and (by way of the latter) the MicroSoft Windows File
Manager (which was recently renamed "Windows Explorer"). My concept and
design based, in part, on my earlier SUBTREE. Initially developed with
Dennis LaCroix. Later development (including the IBM BURT3363
product) done with Richard Redpath.

E (1984), ME (1985), and E2 (1986)

Presaged by my earlier PE macro set and the PEACCESS front end, the E editor
family (currently incarnated as OS/2 enhanced Editor/EPM) was rooted in
the legacy of Personal Editor, but sought to surpass it with a superior
user interface, superior extensibility, and extreme speed. Initially a
partnership effort with Clark Maurer, the initial E editor married my desire
for a better user interface and Clark's passion for a really fast editor.
E's speed, small footprint, and ease of use made it a runaway hit with
users. It is still widely used despite the fact that no new version of
the original non-configurable E editor has been released in over 10 years.
Another non-configurable variant of E, TEDIT, retains my original user
interface design and is shipped with IBM DOS and IBM OS/2.

Further extension of the capabilities of E started with the ME prototype.
Conceived as an exploration of editor configurability and the use of editors
as a platform for building applications, ME combined the configurable menu
functionality of EASYMENU with the key and command configurability that
would ultimately be released in E2. All of the essential design elements
of ME's EI (E interpreter) configuration language used in E2, E3, EPM,
and other E language variants (including MicroEdge's SlickEdit) were designed
in ME. ME was used to develop a number of prototypes, including a expert
system data collection tool, an spreadsheet-like user interface to IBM's
host DB/2, a TCP/IP mail front end, an experimental reimplementation of
FILEMAN,
a never released new version of the Yorktown PC User's
Workbench, and the DARWIN user interface prototype.
ME was also used to develop several important E2 macro sets, including
E2DRAW. The design lessons of ME were considerable,
moreover, and many of the decisions associated with BBMODEL reflect lessons
learned in the process of implementing and prototyping with ME.

ME was a joint design effort with Clark Maurer. We designed ME and the
EI language together. We implemented the system together. Most of that
work remained intact when Clark, working alone, released the E2 editor
without the ME menuing capability. While my contributions to subsequent
E family editor incarnations has been minimal, I have built a number of
systems using E family editors, including E2SURVEY
(the only E family editor implementation that shares no macro code with
the E editor itself), E2XEDIT, E2TEXT, and BBMODEL.

BBMODEL (1987)

When asked to quickly develop and specify the user interface for a new
IBM SGML word processor, determined that the fastest way to design and
test the system was to build a user interface prototyping toolkit, based
on the E2 editor. This interpretive user interface prototype toolkit, called
BBMODEL, specified user interface elements using a consistent tag-based
markup in which the style of user interface elements was treated as an
attribute of a standard tag set rather than as a specific tag. This separation
of style and content allowed us to rapidly try out a range of user interface
presentation options, with, for instance, menus rapidly cycled from action
bar styles to pull down styles to pop-up styles. The inclusion of E2TEXT
in the BBMODEL prototype allowed us, moreover, to test the prototype system
as a functional word processor. BBMODEL development ended as the word processor
design solidified and work on the product code started.

By that time, however, BBMODEL had been transferred to Stephen Bois,
where it was used as a test bed for exploring the early concepts that resulted
in the ITS user interface development system. While few people have heard
of ITS, it has been used by millions of people who have stopped at IBM
kiosks at World's Fairs and Olympics. While ITS is compiled to P-code rather
than interpreted, it retains, and has expanded on, much of its BBMODEL
legacy, including the use of tags and the separation of style from content.
ITS has vastly expanded from BBMODEL, particularly in its expansion on
the concept of separating style from content. While a number of base ITS
tags are unchanged from BBMODEL, they are but a small fraction of the entire
ITS tag inventory. Hence, while I sometimes feel vaguely grandfatherly
about the system, I don't claim to have had any important role in its development.
BBMODEL was my concept and design, and was developed in conjunction with
Valerie Olague and Eric Hesse. The Word Processor it was built for was
completed and nearly shipped (the project was canceled with the product
in shrink wrap waiting for formal announcement) with a user interface that
looks almost exactly like my design. BBMODEL was used throughout the development
cycle of that word processor to demonstrate and test user its interface
concepts.

OS/2 System Editor (1986)

Cowrote this specification for the OS/2 system editor with Jay Tunkel.
Implemented editor with Clark Maurer and others. Wrote the editor documentation
as shipped with OS/2 1.1. I am occasionally embarrassed to admit this,
because OS/2 System Editor is a very low function editor (mostly it illustrates
what should be a standing principle in the computer industry: "Requirements
processes primarily exist to justify removing already implemented function
from programs"). That said, the original OS/2 System Editor specification
was considerably more powerful and E-like than the version that ultimately
shipped. Indeed, the specification was purposely written to enable upwardly
compatible move to an E family editor on subsequent
OS/2 release. While this never happened, the most advanced version of E,
OS/2 Enhanced Editor or EPM, was added to OS/2 at OS/2 2.1. Yet another
E compatible editor, tedit, was added to OS/2 at OS/2 4.0.

EasyMenu (1984)

One of the first user configurable menu driven front ends for DOS programs,
EasyMenu provided the central user interface component of the Yorktown
PC User's Workbench. My first serious excursion into computer language
design (based in part on the user configurability of FILEMAN,
EASYMENU provided the impetus for a series of later efforts, including
ME,
E2Menu, and BBModel. Provided a partial source code
basis for the IBM DOS Shell. My concept and design. Developed with Clark
Maurer.

E2SURVEY (1986)

Possibly the only complete E family editor macro
set that completely replaces the default E macros. Provides everything
needed to conduct an electronic survey, with support provided for a wide
variety of question types, including multiple choice, multiple selection,
open ended, and one line answers. Uniquely, implements a complete editor
within the E2 editor. Also provides mechanisms remembering previous answers
across sessions and for asking targeted follow up questions based on the
answers given. To my amazement, still sometimes used to conduct electronic
surveys in IBM.

FSORT (1988)

An intelligent dynamic field resolution sort utility. Resolved sort columns,
even where they are not physically justified, based on relative position
and dynamically determined data type (text, integer, floating point, etc.).
The key notion, in FSORT, was that pure left to right character based sorts
were not nearly as useful as resolved data type based sorts. My concept
and design. Implemented with Alain Benoix. Good idea that the world could
still use.

RXPM (1988)

Pioneered Presentation Manager interaction from REXX programs. Sought by
IBM PSP as an OS/2 deliverable. Other systems have since matched and surpassed
RXPM, but it remains the first interpretive system I am aware of to manage
a iconic windowing environment. My concept and design. Implemented with
Alain Benoix.

REXXTRAN (1988)

A prototype REXX extension that allowed any OS/2 dynamic link function
to be called from REXX without conversion to the REXX API's. The only requirement
for use of a DLL function from REXX was the specification of the function's
typed calling parameters in a profile. REXXTRAN did all format conversions
(string of length, integer or float of size and other characteristics,
etc) between REXX and the called dynamic link library function. Sought
by PSP as an OS/2 deliverable. Some of the concepts associated with REXXTRAN
are now associated with SOM, but it remains, to the best of my knowledge,
the only system of its kind to map interpretive languages to dynamic link
libraries without any requirement of special coding and/or compile options
(that could be applied, a priori, to any existing DLL). My concept and
design. Implemented with Alain Benoix.

MenuCalc (1985)

Building calculators on PC's was not a new idea when we started the development
of MenuCalc. Formula solving, as illustrated by Spreadsheets and mathematical
problem solving environments wasn't a new idea either. What was new, in
MenuCalc, and its successor, MC2, was the idea of packaging substantial
formula solving capabilities in a small pop-up calculator that didn't take
over the entire screen. MenuCalc and MC2 were very widely used for a long
time. My concept and design. Developed (as MenuCalc) with Ted Diament and
(as MC2) Richard Redpath.

Filters (1984)

One of the first sets of UNIX-style filters available for DOS after the
release of DOS 2.0. A suite of over a dozen tools for automatically reorganizing
data files, including columnar data selection, reorganization, and modification
capabilities. Also included sample filter source code that was widely used
as a base for writing new filters. These filters have had substantial productivity
in subsequent work, including the prototype "Mirror Backup" (see below).
I have long had a design for a FILTER GUI that would allow users to show,
in a template fashion, how they wanted a data file reformatted, and would
then create a reusable filter chain to do the data reorganization, but
have never had a chance to implement it. I have rewritten this suite several
times. The initial implementation was in Intel 808x Assembler. Subsequent
implementations have been done in REXX, PASCAL, C, C++, and Java.