SiteMap
Page Bottom   HomePage    The Plain Vanilla Player    What's New    Links from which to learn more    Frequently Asked Questions    Site Map    Contact Us    Tags Menu    C# Application    Documentation    GISLib Regional Economic Data    Documentation NewLeaf (implementation)    Development Plan for RaceMatters.org    References from Other Sources    The Regional Model   

The Plain Vanilla Magical Machine


Overview

Kristen Nygaard laid the groundwork for modern programming by conceiving of "object oriented" programming. Others have carried that work further with C++, Java, APL and other "modern" languages. For APL programmers, Eric Lescasse took a giant step with his "Objects" and Adrian Smith has laid solid groundwork for publication with NewLeaf and RainPro. APL2000 and Adrian together have created APLDraw.ocx. Others, especially Bill Parke , have contributed to a body of freeware and shareware. Building on this tradition, this paper proposes and illustrates what Eric has called a "higher level of abstraction" through the discovery of commonalities in major contemporary applications and by the use of certain disciplines which are described in these pages. The software described below was created in this tradition; some was distributed at the APL2000 user conference in Naples in November, 2002 and all is available on request as shareware. The most important use of the software described in this paper is for maintenance of the archives of United States Masters Swimming, Inc. USMS will be referred to as the "client" in this paper.

The client's hopes with new technology are that information is readily accessable and easy to maintain, that experimentation with the relationships in data is easy, that the most critical information is very, very easily available, and that reports are easy to generate in a form acceptable to management, operating departments or committees, researchers, lenders, statutory agencies and his or her clients. A second but still very important client hope is that it is relatively easy to put the new technology in place. These hopes are the underpinnings of this plan.

Information Management

This is an html document linked to approximately 400 pages and available at www.qkw.com/dv/pvmm/. It describes a vision that has evolved over several years. (Some pages are out of date; they are updated on an as needed basis.) These 400 pages are managed with shareware created by Carl House & friends. This software is also used to manage approximately 8000 webpages which are also linked to from this document. software also handles all user i/o, data management, forms, editors, and reports in Windows. The intent is that information will be stored in a format that is independent of any platform and then compiled for use in whatever platforms for which we build compilers.

The concept of "self descriptive data" is key to the approach described in this paper. XML is an example of a self descriptive data. This idea as used in this paper is described in two documents. "Self-Descriptive Data" was presented by Christopher H Lee at the November, 2002 conference in Naples, Florida. "Strategies for Dealing with Multiple Arguments: The Case for Names" was presented by Eric Landau of APL Solutions, Inc. at the November, 2001 conference. The technical form in which we use self-descriptive data is called "property value pairs", or "PVP"'s. PVP and XML data can be changed from one format to the other quite easily. The advantage of PVP's is that they are far more concise and do not need to be parsed.

Black Boxes

Our software is designed to be useful for a variety of applications. Assuming you have a black box that can do valuable work provided that is has a viable platform, this approach might help. Our software is intended to provide high level object oriented software for publishing and user i/o. It should be understood that what is being presented is not yet commercially viable and trouble-free. Instead, it is presentation of software that is on its way to being a suite of programs for simultaneous software development for Windows and for use on the web. If successful, this effort may present a new plateau for rapid applicaton development. One of the features of this software design is that new forms are created (on the fly) from the characteristics of the data (rather than by programming effort). Your black box can create its own forms.

USMS archives are maintained by batch programs written in APL. These batch programs have little or no user i/o and are run with command line processing. TTDB (used by Barbara Dunbar) and IMGInfo (used by Katie Cooper) are the first attempts to make these batch programs useable by people other than their creator. Both TTDB and IMGInfo are 100% compatible with and are fully expressive of the ideas in this paper.

Publishing

Source material is of wide variety, including narrative text, images, data tables and many variations of each. All source material should be stored with minimal enhancement. Publishing tools should make it possible to render the source material in all of the generally used formats without the need for typists or publishing persons or technical people. Whoever wants the data should be able to get it in the most useful format.

Most of our publishing tools are being created by Causeway Graphical Systems. Like Eric's Objects, Adrian's products are designed to allow one to program exactly what one wants and with remarkable elegance. Our challenge is to define generalized specifications that will meet a wide variety of needs and then to write the drivers needed to use NewLeaf, RainPro and Objects to handle them easily and dependably. Whereever our generalized design and drivers can't do the job, the power and elegance of NewLeaf, RainPro, Objects and APL are available for lower level programming.

Utilities

Utilities include tools for backup, FTP, HTTP, SQL, MDI and many other essential technologies. In addition, several highly developed software products should be considered as essential utilities to our software. These include the products of APL2000, Causeway, Ltd., and Lescasse Consulting which must be licensed directly from those companies. These utilities are used for USMS without cost to USMS because they have been licensed to Carl House on terms that allow for run-time use by others.

Strategy for Proceeding

Our tools will have value to others and it is our intent to share generously as those whose tools we use do. Furthermore, there are uses of our technology which we serve on a pro bono basis and this will continue. We have two tasks at this time. The first is to build a facility to annotate the 3000 photos in our photo library. The second task is to convert our archives from .sf files to an SQL database and to revise the maintenance procedures to use the SQL files rather than apl .sf files. The Minimal H&A RFP.

Demos for the 2002 APL2000 User Conference

The following are at a stage where they can be demonstrated if time allows in our Naples presentation. Some will be on the Conference CD. All are available as shareware on request.

Rendering PVP's

Data retrieved and distributed as PVP's can be rendered in many different formats which provide different modes of interactivity. Here are the formats we've been using.

qkForm

Forms are specified in a generalized manner that is independent of the intended platform.

qkPublish

All source material is stored in a consistent manner that is independent of the intended platform or publishing vehicle.

qkHelp

All source material is stored in a consistent manner and can be rendered in many formats. One of those formats is a traditional Windows help system.

Managing images

We were led into the problem of managing images by the generousity of Sports Publications, Inc. of El Segundo, California, in making available all the images published in "Swim Magazine" since 1995.

qkButton

"qkButton" uses APLDraw.ocx to create lovely graphics for the web or for Windows, but this demo is especially designed to generate navigational buttons for websites. qkWebFolder uses qkButton to automatically create navigational buttons when they are needed. This is not important to USMS, but this was the first step in creating IMGBatch which is needed by USMS for resizing and reformatting images from Swim Magazine.

Managing a very large library of images

IMGInfo was created by Carl House and Eric Landau using Eric Lescasse's Objects to provide for image annotation. It is part of a suite of four workspaces used for archiving images for United States Masters Swimming:

IMGInfo

IMGInfo is a very object oriented application. Here is its objects heirarchy.
  1. Eric Landau wrote 3 functions specifically for USMS. IMGInfo was written by Carl. These functions total 10,311 characters of code. IMGInfo, ttIMGInfo, askIMGInfo1, hndIMGInfo1.
  2. Eric gave us 6 functions he had earlier written as utilities for SoftMed, Inc. These functions total 11,298 characters of code. IWrite, ITie, IRead, IDrop, ICreate, IComps.
  3. We used 6 functions from Eric Lescasse's Objects. These functions total 32,841 characters of code. TJpg, TWebBrowser, WebBrowserClass, TMsgBox, YesNo, Ok.
  4. We used 7 utilities available from the APL community. These functions total 10,800 characters of code. qkPath, ‘WBrowseFolder, FolderExist, MKDIR, qkeFI, NewFormName, CatchRTSError.

The Multiple Document Interface (MDI)

In simplest terms, an MDI form is simply the means by which multiple documents or forms are handled. In the Miscrosoft world, they tend to have a very similar physical appearance, and, in fact, there is remarkable similarity in the names of the "first level children". Excel and MSWord both have first level children with the following 8 names: File, Edit, View, Insert, Format, Tools, Window and Help. Excel adds one (Data) and Word adds one (Table). This similarity and the widespread use of these two systems gives us considerable advantage in designing our MDI form. We've thought of several other first level child names that might also be useful: Process, Publish, Inputs, Run and Outputs, but we've got a big head start from Microsoft. Now all we have to do is arrange our functionality in these categories and make sure all works well within the environment we choose.

Objects Hierarchy for all APL functions used by USMS

The total number of APL functions in use for maintenance of USMS Archives is 1207 with a total of 3.9 million characters of code. 69% of this code is in Carl's utilities, many of which are widely available in the APL community. 11% of the code is in Lescasse Objects, 5% comes from Causeway Graphics Systems, Ltd., 14% is code written specifically for USMS (as a volunteer) by Carl, and .2% is in code written by consultants to USMS. These numbers are based on an estimate by Carl on 12/6/02.
source code functions characters of code characters %
utilities 0 807 2723558 69.4
Bill Parke 1 2 8555 0.2
LescasseObjects 2 46 427801 10.9
Causeway 3 214 181820 4.6
Eric Landau 4 7 13979 0.4
Carl for TTDB 5 128 562069 14.3
USMS Consultants 6 3 8070 0.2
Total 9 1207 3925852 100.0

Acknowledgements

This is to express appreciation to the following for contributing their ideas and effort over the years. Help comes in conversation, shared code, shared applications, high quality licensed software utilities, in consulting assistance, and in teaching, both formal and informal.

Tom Atkins, Eric Baelen, Warren Baelen, Steve Brooks, Brian Chizever, Davin Church, Scotty Elmslie, Gert Glantz, John Gregg, Brent Hildebrand, Jeff Koloseus, Eric Landau, Christopher Lee, Eric Lescasse, Jairo Lopez, Jeremy Main, Jonathan Manktelow, James Merrill, William Parke, Patrick Parks, Colyn Phillips, Adrian Smith, Michael Steiner, Roy Sykes, Fred Waid, John Walker, Andy Weiss and to others whose name is not coming to mind at the moment. Thanks very much. I hope there is something here of help to you. Carl House, revised 12/5/02 for what I learned at the APL2000 conference.


Home Page 11/18/07  ( 539 8 4022700 )
The Plain Vanilla Player 11/18/07  ( 539 8 4022700 )
What's New 
Links from which to learn more 
Frequently Asked Questions 
Site Map 
Contact Us 
Tags Menu 
C# Application 
Documentation 
GISLib Regional Economic Data 
Documentation NewLeaf (implementation) 
Development Plan for RaceMatters.org 
References from Other Sources 
The Regional Model 

horizontal line
e-mail Page Top   HomePage    The Plain Vanilla Player    What's New    Links from which to learn more    Frequently Asked Questions    Site Map    Contact Us    Tags Menu    C# Application    Documentation    GISLib Regional Economic Data    Documentation NewLeaf (implementation)    Development Plan for RaceMatters.org    References from Other Sources    The Regional Model