Books, Papers, and Articles Published by Our Consultants

We've written several papers, articles, and a book over the years. Most of the ideas in these works, though novel at the time, have become industry standards.

Papers

Interface-Compute

A design module for applications with graphical user interfaces

This paper describes a new model for constructing non-trivial programs that are controlled with graphical user interfaces. The discussion is motivated by describing how requirements for such programs are increasing in complexity yet the abstractions used to control this complexity have stagnated. In particular, the omnipresent abstraction for building GUI-controlled programs, model-view-controller, is shown to be inadequate.

The core of the article describes a new model, termed “interface-compute”, for building GUI-controlled programs. Eleven prescriptions are detailed that codify the model and several less-formal suggestions are provided to help designers realize the full potential of the model. Finally, the article concludes with a discussion of how the interface-compute model may be applied to browser-hosted GUIs.

Interface Programming Model

A design model for constructing graphical user interfaces

This paper describes a new model for constructing non-trivial programs that are controlled with graphical user interfaces. The discussion is motivated by describing how requirements for such programs are increasing in complexity yet the abstractions used to control this complexity have stagnated. In particular, the omnipresent abstraction for building GUI-controlled programs, model-view-controller, is shown to be inadequate.

The core of the article describes a new model, termed “interface-compute”, for building GUI-controlled programs. Eleven prescriptions are detailed that codify the model and several less-formal suggestions are provided to help designers realize the full potential of the model. Finally, the article concludes with a discussion of how the interface-compute model may be applied to browser-hosted GUIs.

Conceptual Integrity

Conceptual integrity is central to product quality. But, what is conceptual integrity, how is it measured, and how is it achieved? It seems that conceptual integrity is one of those ideas that isn’t formally defined but you know it when you see it. We can and must do better; particularly if it is the key factor to product quality.

This paper defines conceptual integrity and then discusses how to measure and it.

Prescriptions for a Clinical Trial Automation System

Editor's note: this paper is now 14 years old, yet every proposition has been 100% validated by the test of time.

Given the large quantity of information that is collected, controlled, processed, and analyzed during the course of a clinical program (one or more clinical trials), automation is required in order to achieve efficiency and quality. Yet, today (c2003) few trials attempt to utilize automation in many of the significant processes where automation technologies are available. Moreover, the industry abounds with stories of technology failures. Clearly, something is wrong.

This paper presents seven prescriptions for building a clinical trial automation system to make things right. It is further argued that alternative solutions—many of which are implemented by current technologies—will result in less than optimal systems at best and complete failure at worst.

Articles

The Dojo Loader

Version 1.x of ALTOVISO's bd-load was rolled into Dojo back in 2011 and is probably the second-most used AMD loader next to Requirejs. It is still the most capable AMD loader today and contains many features and capabilities not available in other loaders. It is also one of the fastest and smallest.

This article represents an exhaustive tutorial explaining the many features and proper use of the Dojo loader.

The Dojo Build System

Version 1.x of ALTOVISO's bd-build was rolled into Dojo back in 2011. The Dojo build system is a general-purpose program for transforming a set of resources. It was built to solve the problem of transforming a set of resources that comprise an application in order to improve the performance of that application. These kind of optimizations are termed “deployment optimizations”, and the build system includes a rich set of such optimizations.

However, the build system is not limited to these kind of transforms. At its core, the build system is an engine for applying an ordered, synchronized, configurable set of transforms to a configurable input set. Examples of other usages include document generators, style checkers, code formatters, lint checkers, and many more. In some ways it is like a make program, except the external processes that typical make programs execute can be implemented within the build system’s pluggable transform infrastructure. Of course external processes can be executed as well.

This article represents an exhaustive tutorial explaining the many features and proper use of the Dojo build system.

Books

Mastering Dojo

Mastering Dojo, co-written by ALTOVISO's principal engineer Rawld Gill walks you through the whole range of modern web programming problems, circa 2008 with the Dojo Toolkit. Although the material is now dated, the principals are timeless. Indeed, the design discussions in Rawld's chapters on object oriented programming, and building large-scale, enterprise-class applications are as relevant today as they were almost 10 years ago.