glyph 

Interesting Projects

Go to Al's Resume ...

Go to Al's Web Log ...

Go to home page ...

Data Warehouse Data Conversion

I developed a program for the actuarial department of a major insurance company to convert legacy claims information into a relational database format. I designed the database to allow time-series analysis using a simple query language like SQL. The implementation was an extreme exercise in deductive data analysis because the legacy system used an "interesting" mix of transaction and master update logic so that many adjustments modified the original transactions, obscuring the initial transaction amounts and codes. The project required loading seven years of data, so the program had to use date conditioned logic to adjust for legacy system bugs, eliminate duplicate records from purge/unpurge transactions and reconcile duplicate claim numbers.

The initial loads processed approximately 20 million records per year and built a database with a similar number of records in a radically different structure. In order to reconcile the file, the load performed a complete master/transaction posting cycle building from the prior cycle's master. This totaled on the order of 100 million I/Os per cycle. The initial loads took 8 to 10 hours writing DBF files using the Delphi TTable object. To speed this up I wrote my own DBF replacement for TTable which reduce the run times to two to 3 hours. (We used DBFs for this project because initial testing by the application architect indicated that raw loading the database into Oracle 7 would have taken over 24 hours per cycle and that some queries would take days to run).


MS Mail / Internet E-Mail Gateway

The MS Mail server product did not have a reasonable Internet Gateway for my small business customers. I developed an MS Mail custom form to compose and read messages with Internet address fields. I then built a backend system in Visual Basic which translated between MS Mail and Internet E-Mail formats including automatic handling of attachments -- this was a bit innovative as most Internet e-mail systems at that time required the user to manually UUENCODE/UUDECODE attachments. The system also handled marshalling between the MS Mail MTA and a UNIX UUCP gateway.


MS Word Formatting System

One of my clients used a large number of document formats and had a requirement to maintain strict consistency in layout. I developed a WordBasic dialog and support macros which prompted for the variable data and automatically formatted the document header using a number of list boxes, check boxes and file data to control the formatting. The variables were stored as hidden document data so that the format specifications could be changed and the header reformatted at any time. The macros also assisted printing so that if a plain paper source was selected the headings were regenerated with a pseudo letterhead including logo, return address, etc. whereas if a letterhead source was selected the pseudo letterhead was eliminated and the printer options were automatically configured to properly feed letterhead and second sheet paper.


Computer PBX

I developed a computer based PBX in Delphi which runs on an NT server and uses Dialogic CTI cards. I designed and coded the PBX software which implements all the logic of a modern phone system including dial control, voice mail and Interactive Voice Response (IVR) capabilities. The Dialogic APIs directly support only C, so I had to develop my own headers to access the low level DLLs. I developed a family of objects to rationalize the Dialogic functions and automate run-time housekeeping. I also developed a Multi-Threaded Queue object to handle communications between the various asynchronous threads. In order to simplify customizing, the system was designed as a general purpose communications engine and I developed a basic-like scripting language to populate the state machine that controls the run-time operation of the PBX.

Go to Al's Resume ...

Go to Al's Web Log ...

Go to home page ...




The content on this page was updated on 9/6/2005