Projects

The following list constitutes software development projects in which Softlife Consulting has been involved or been solely responsible for.

Islip Company - Sacramento, California

Network Reconfiguration

A small accounting firm with a web-hosting service had a Windows 2003 Server network domain controller with several servers available to the Internet for Web, DNS, and Mail services. The LAN was wide open to the Internet and every system on the LAN was riddled with viruses. 

The system was completely reconfigured so all LAN systems were behind a firewall and published Internet services were mapped to the LAN through the Kentrox Q2200 router. VPN access was provided using the GreenBow VPN client. All systems were cleaned of viruses and Symantec Corporate Anti-Virus client was installed. Linux based DNS servers were converted to Windows 2000 DNS and a Split-DNS configuration was set up to handle DNS requests from the LAN for Internet published services.

Access Business Technologies - Folsom, California

Visual Basic.NET / SQL Server

Solutions for database synchronization were needed for two different applications supporting SQL Server 2000 databases. The first was an SQL only solution involving triggers to update one database when the other was updated and stored procedures that would run on a daily basis to synchronize and verify changes that could not be affected with triggers. These databases were always connected on the same network.

The second solution was for an nTier application in which database changes were distributed across individual laptops and these changes would be synchronized whenever the laptops and/or the main server could be found on the network.A control process was written in VB.NET to constantly check for connectivity to a higher node laptop or server database.  Whenever connected, the target database is connected to the local database as a linked server and the databases are synchronized using a transaction log through calls to SQL stored procedures and the subsequent actuation of triggers.  Each node in the nTier environment acts both actively and passively, checking for connection to higher nodes as well as accepting connections from lower nodes.

Payless Postage - Rancho Murieta, California

Visual Basic Applications

A postal mailing list processing software system needed to be refactored from VB 3.0 to VB .NET in order to enable further modifications.  This application uses an SQL Server database and several functions within the MS/Windows API including file selection and registry editing.

A web-based version of the mailing list utility required a complete overhaul in ASP/VBScript.  In addition, an application server written in VB .NET was required to handle all the back-end processing of the website.

Metacyber.Net - San Jose, California VPN Deployment
A small startup company required the ability to perform system development over a VPN connected to the homes of the principles of the company.  I created IPSEC VPN Gateways under RedHat Linux that allowed for an internal network encrypted across the Internet.

Each node of the network is firewall protected using IPCHAINS or IPTABLES and provides IPSEC tunnels using FreeSwan DHCPD, and BIND are used to provide Dynamic DNS capability available to the internal network only.  Samba is used to provide MS/Windows networking across the VPN.  All Windows and Linux workstations have the ability to share resources as if they were all in the same office.

Metacyber.Net - San Jose, California Perl Website Implementation 
This startup needed to programmatically actuate a Stock Option Broker website to buy, sell, cancel, and track the value of stock options. This application required the development of a number of Perl Modules and Perl Shared Objects for actuating the website, accessing the PostgreSQL database, evaluating option values, downloading historical option value data, and simulating option trading using historical data, and generating/updating an order status website using HTML, CSS 2, and JavaScript.

Hewlett-Packard - Palo-Alto, California Excel Spreadsheet Creation from ASP
Being a multi-national company, HP often sells equipment and services in one country that are provided by another country.  The Multi-National Revenue Tracking system (MuNat), maintains records of the revenue generated by these transactions and reports on the transfers required between countries in order to balance the revenue accounts.

I was asked to enhance the performance of this system and generate Microsoft Excel spreadsheets directly from the SQL Server database into a web page.  This was an ASP system written in VBScript and JavaScript and required a great deal of SQL customization.

Shaklee Corporation - Pleasanton, California Website Performance Enhancement
The company's e-commerce website is responsible for a significant portion of sales revenue.  This website was developed by a skilled but inexperienced programming team that did not understand hardware limitations.

I was called in to evaluate the website and recommend a solution for the dramatic loss of performance being suffered as the number of users increased.  Another organization had previously performed this evaluation and recommended a complete redeployment at a cost of $500,000.

My evaluation determined that the performance degradation arose from the lack of persistence in the Perl systems supporting the website.  I recommended installation of VelociGen, an application server that would give the system persistence and require minimal system modification.

The e-commerce website was migrated from the FreeBSD operating system to RedHat Linux on new hardware and VelociGen was installed.  The project took three months, cost $80,000, and improved performance by 800%.

Agilent Technologies - Santa Clara, California Technical Document Management
The TMO division had a need for a technical support document database, readily modified, easily maintained, and available worldwide.  The Online Support Knowledge Resource (OSKR) was developed under HPUX on an HP-9000 server system.

A web-based application, OSKR allows any user on the Agilent Intranet, anywhere in the world, to easily and quickly add a document to a workflow process in which the document is verified and approved before being submitted to the document database.  Contextual searches of the database are available to any Agilent user.  Each document within the OSKR database has a prescribed review period, after which the document is automatically submitted to the document owner for currency review.  Documents meeting certain criteria are automatically parsed and rebuilt by custom Perl applications and transferred to the Informix external website database.

The OSKR database, at the end of 1998, contained over 5000 documents and was being searched over 5000 times per month by Agilent service and support personnel all over the world.  Many of these documents are automatically copied to the external Agilent website where they are available to the general public.

OSKR was developed using C, Perl, HTML, Java, JavaScript, Topic by Verity, and Oracle 8 and includes over 500 pages of user, support, and development documentation.

Hewlett Packard - Palo Alto, California JetForm Printing Interface
The corporate division of HP required the printing of hardware and software support contracts from their Installed Base System (IBS) database using JetForm form building utilities.  IBS is a Cobol application running on the HP-3000 under MPE V.

Customer Documentation (CustDoc) is an interface layer, written in C, between the Cobol application IBS and the Jetform-Merge utility.  This interface builds the Jetform-Merge input file that is merged with the Macro Definition File (MDF) to produce the support contract on an HP LaserJet printer.

Interface layers were also created for the TurboIMAGE/XL database, Allbase/SQL database, V/Plus terminal formatting utilities, and the packed-decimal compiler library extensions.  These interfaces were required by the application but not provided for in the operating system.

CustDoc was developed in 1994 and utilized in the US, South America, Singapore, Hong Kong, and Europe. It fully supported local language requirements.

Hewlett Packard - Palo Alto, California JetForm Web Page Creation
The Support Connection Application (SCA) is a World-Wide Web based utility providing HP customers the ability to view their most current support contracts on-line in a PDF or HTML format.  This project was started in 1999 and, at that time, there was no multibyte (Asian) character capability in PDF files, nor was there any ability to generate HTML using JetForm.

The CustDoc interface, created to generate support contracts from IBS using JetForm, was used to create the Jetform-Merge input file for a given contract web page.  This file would be used to create a PDF file for non-Asian countries using the PDFMERGE utility from JetForm.  This utility operated only under Windows/NT so it was necessary to create an automated transfer layer between the HP-3000 and the Windows/NT server that performed the creation of the PDF file.

For Asian countries, a utility was created that would read the HTML page definition file, for a given Country and Contract Type, and merge this definition with the Jetform-Merge input file created by CustDoc.  This would produce the support contract web page to be used on the SCA website.

In addition, Traditional Chinese characters, used by Taiwan, are represented using the CCDC character set on the HP-3000.  A utility was written to convert these characters to the BIG5 character set used on the Internet.

Finally, a BTree caching layer was created in C for use by the Allbase/SQL and TurboIMAGE/XL interface layers of CustDoc.  This allowed the CustDoc process to be used efficiently in a batch-processing mode by SCA as well as in an interactive mode by IBS.

The first release of SCA was in April, 1999 after three months of design, development, and implementation.

Hewlett Packard - Palo Alto, California Invoice Generation Refactoring
The support contract invoice generation application, TBS, was 15000 lines of Cobol that had become completely unsupportable by early 2000.  There were no developers that adequately understood the process or could aid its required modification and support effort.

Softlife Consulting was asked to refactor this application in C++.  The resulting program was approximately 1500 lines long and improved the efficiency of the invoicing process by 75 to 80 percent.  The design and implementation of this new invoicing process took four months and was released in September, 2000.

Base Two Solutions - Rancho Murieta, California PostScript Barcode Generation
An application that created Postal Mailing Tray and Cage labels had to be modified to generate the Interleaved 2 of 5 barcode required by the US Post office.  A utility was created to provide this capability in GNC C under Linux, Windows/95, and Windows/3.11.
Bank of America Systems Engineering - Concord, California Protected Mode Networking
In 1991, The Business Lending Division of Bank of America needed a workflow system specifically designed for loan origination processing.  This was before the days of 32-bit memory addressing and the existing application (WIP) used and overlay configuration under RT-Link PLUS and was having tremendous problems with the 640K-memory limit imposed by DOS.

The Commercial Tracking System (CTS) was developed for the Bank of America Business Lending Centers in the western states.  The typical site was a 200-node Novell Token-Ring LAN running Netware 3.11 with three 2.6 GB file servers.  CTS was developed under Microsoft C and the Phar-Lap 286|DOS-Extender to solve the problem of memory limitation and prepare for possible later move to OS/2.

CTS used Btrieve as the database manager, C/Scape as the windowing manager, and the Netware Client SDK to integrate with the Netware operating system.  All of these utilities were modified to work in 286 protected mode.

Bank of America Systems Engineering - Concord, California Automated Release Installation
Bank of America had a requirement that no software support personnel be required for installation of new releases of the CTS loan origination system.  Today, automated installation processes are commonplace, but, in 1992, no such process existed for small computer systems.

CTSCON was a configurable utility that would automatically backup the existing application, install new programs, make any required database modifications, apply any system configuration changes, and perform any necessary integration tests based on the configuration script provided by the development team.  The installation package created by CTSCON required minimal operator intervention, provided a restore capability in case the installation had to be removed for any reason, and produced a report on all changes made to the target system.

CTSCON was developed using Microsoft C, Intel Assembly Language, and the Netware Client SDK.

Bank of America Systems Engineering - Concord, California Version Control
By 1992, two lines of CTS system development were constantly being maintained: Planned Installations (PIs), which included feature enhancements, and Unplanned Installations (UIs), primarily given to system corrections but capable of emergency feature implementations.

The growing number of CTS installations was creating increasing requests for feature enhancement.  The development staff was expanded to 6 in late 1992 and multiple PI releases began to be planned.  This caused a problem for the version control process.  PVCS was used for version control and the process became unwieldy in light of multiple planned releases.  It became too simple for the version control chains to become corrupted by developers that did not or could not adhere to the expanding command restrictions.

I created a menu driven system, based on PVCS, that would allow for the simple creation of a new planned release.  A developer would simply "login" to the release being worked on before checking out or checking in modified program code.  The process was flawless and used the PVCS facility for merging changes from one release into another quite effectively.

Teekay Shipping (Canada), Ltd. - Vancouver, BC Company Network Changeover
I was asked to organize and re-structure the installation of a 60-node Novell Token-Ring LAN running Netware 3.10 and Netware 2.15 to replace the Unisys/Convergent Technologies Megaframe network.  I prepared both systems for the move from Long Beach, California to Vancouver, British Columbia and, once in Vancouver, supervised the system conversion.

In addition, I created a menu driven utility for creating, sending, and storing telexes sent between the corporate office and the oil tankers under contract.  The process was developed using the Wordperfect Macro Language.

Mini-Systems Associates - Marina Del Rey, California Resume Retrieval System
Although network based, document indexing and retrieval systems are readily available today, in 1988 no such animal existed.  I was asked to create an interactive, resume indexing and retrieval system for use by the technical candidate recruiting staff in the corporate office and the remote offices around the country.

Interactive Remote Office Search (IROS) was a multi-user, remote access, resume retrieval system utilizing OCR and Full Document Indexing technology to maintain and allow instantaneous access to a database of 50,000 original resumes with as many as 100 new resumes being scanned and added to the database, daily.  The system was developed using Borland Turbo C with Btrieve as the database manager and C/Scape as the windowing manager.

IROS was installed on a 60-node Novell ARCNET LAN running Netware 3.11 with the database on mirrored 600 MB file servers.  In addition, PC/Anywhere was used to provide for dialup access to the system so that searches could be performed from the remote sales offices around the country.