My name is Stephen Johnson and I have been a
software developer for over 40 years. A profession, in which, that I really
enjoy working. Programming has been easy for me from the day I started
learning Machine Code on a Control Data 3350. I discovered that I had a natural
ability. From that day, I have used that ability to learn many programming
languages and help teach them to others.
I received my first
programming opportunity in 1974 while still attending Control Data Institute
(CDI) in programming technology. I had just completed the CDI hardware school a
few months prior with a 93.7% average. I was working for an electronics
manufacturing company, International Power Machines Corporation (IPM),
as an electronics technician, when the company received a Hewlett Packard 2100
from a sister company. The HP 2100 was running the
Test-Oriented-Disk-System (TODS). IPM gave me the opportunity to write
System and Application programs for the company because they knew I was
attending programming school. My language choices were HP Assembler, Fortran
II, and Automatic Test System (ATS) BASIC, (which had no alpha processing
capability). During this time, I completed the CDI course with a 99.4% average.
Since the Hewlett
Packard 2100 computer and operating system was designed to test printed circuit
boards and not business processing, it had none of the usual data processing
utilities like Print, Copy, or a Sort Utility. I spent the first few months
writing utilities like sequential and indexed, logical record read/write/update
routines, and system clock functions and created a library general business
processing functions. These library functions were
written as universal modules with most of the attributes and functionality of
what is commonly called Object-Oriented today.
After completing
enough of the system Modules, I started writing a Bill-of-Materials
(BOM) System that included an Editor, a BOM Explosion and Print utilities, and
many Inventory Control functions. All of this was done with no help, no
supervision, no experience, or anyone to tell me how to do it. I had to figure
it out all on my own. I made my share of mistakes, but I learned from them, and
developed better functions and utilities.
In addition to
normal Inventory Control programs I also developed a new language which allowed
an engineer to reduce the time it took to create a Point-to-Point wire list
from 7-10 days to 1 day. The language was dubbed WLGEN for Wire List generator.
Two years later the
company changed to a Datapoint computer, which was a multitasking, multi-user,
Local Area Network (LAN) system which gave me another opportunity to recreate
the Inventory Control, Bill-of-Material processing, a new Shop Floor Control
and Purchasing systems as on-line, Interactive Systems. Within two years, these
systems helped the company grow from a $7 million-per-year to company $25
million-per-year company virtually overnight. The original Wire List System
(from the HP) was rewritten in Macro Assembler and further reduced the engineering
time.
More applications
were needed and since all of the languages available
on the Datapoint system were limited (Datashare, an interpretive language,
COBOL, RPG II, and Macro Assembler), I needed another language that would
make it simpler to program and faster to execute. None of the languages were
well suited for the tasks I needed to perform, and the company did not want to
spend any money on a new language. Therefore in 1979 I started creating my own
language on my own time. Written in Datapoint Macro Assembler, the new language
used the Datashare syntax, like much of our existing programs. This new
language gave me the ability to write new programs and/or systems quickly
because I, and my one-person staff, was already experienced in Datashare.
In addition, this new language, provided functions that were either not
available or inadequate with the other languages. The language was compled in two years and dubbed DIRTBOL, but that another
story.
With these
achievements, the company gave me a third opportunity in 1980. To develop a new
operating system for the Z-80 Microprocessor using an HP 64000 development
system. Within 5 months I learned the Z-80 instruction set, the HP 64000
Macro Assembler, and I developed a multi-tasking operating system, complete
with multiple applications which were to replace analog measuring devices
(meters) on an Uninterruptable Power Supply (UPS) with digital devices (CRT,
Printers, etc...). Functions included a real-time clock, all device drivers,
and a 24-digit, floating point math package, which was used to determine how
much time a battery would last, with varying loads on the UPS, by plotting the
slope of the battery discharge curve. The calculation was accurate to within
one minute of determining when the UPS would turn itself off after the primary
power failed.
In 1984, while
working as an Independent Software Contractor, International Power Machines
Corporation gave me another opportunity. I was hired to convert the
existing Datapoint Inventory Control system to a DEC VAX MRP system. I was
unfamiliar with the DEC VAX and its operating system but the people
at IPM knew I could handle it. . In addition to
leaning the operating system and another language (Fortran IV), all conversion
work was completed within six months when, according to software vendor, it
normally took two years. In addition to the Datapoint to DEC VAX conversions,
the Wire List System was again rewritten in Fortran IV and further reduced the
time to less than an hour.
In early 1986 still
as an Independent Contractor, I obtained an opportunity from Croton
Services, Inc. (a Datapoint Hardware service company) to write several
Hardware Diagnostic Utilities. These diagnostics were used to test various
hardware functions for proper operation. I wrote several Printer and Disk
Drive diagnostics utilities. Since these diagnostics had to be written to be
executed without the benefit an any operating system, they had to contain their
own keyboard input and screen output drivers as well as all the drivers for the
hardware to be tested. With the acceptance of the owners, I wrote all of the diagnostic utilities in DIRTBOL which has been
modified to supply the stand-alone drivers that were required.
I obtained another
opportunity in late 1986 with Swift Independent Packing Company, a meat
packing company. I was introduced to the IBM System/38 and within six months I
had not only learned the operating system (CPF), and two new languages (Control
Language (CL) and RPG III), I developed a Help Desk (problem tracking) system,
which was the only one of it's
kind on this platform and has since been sold worldwide. The system was later
redesigned and rewritten for the AS/400.
In late 1995 while
working for Prentiss Properties Limited, Inc (a Property Management
company) I learned Visual Basic 3.0 (and all versions thru .NET 2005) and have
been writing in it almost exclusively, for company related functions, since
that time. Visual Basic applications include:
AnyCall - Tenant Work Order System
(Purchased from another). I have modified, or added, as much to it as was
purchased.
Preventive
Maintenance Planner (Also purchased) but several modifications.
Prentiss
Communications Connectivity Utility (PCOMCON) which auto-configurations and
interfaces with IBM's Personal Communications/400 System (via DDE) which is
used to access the many AS/400 via dial-up lines.
A Software
Distribution Utility, which is used to create all diskettes used in software
distribution to all of our branches and logs all
transactions.
Several Programmer
Utilities, including, a simple interface to creating Installshield Setup
Scripts. Also used to build the InstallShield install diskette images.
In the past several
years I have worked with Visual Basic 3.0, 4.0, 5.0., 6.0, and all versions of
VB.Net ; Instatallshield 3.0, 5.0, 5.5 and 6.0;
RoboHelp versions 3.0 through 9.0 using Microsoft Word 2.0; Microsoft Office
Professional version 6.0, 95, 97 and 2000 (Word, Excel, Access, and
PowerPoint); Visual Basic for Applications (VBA) starting with Excel 50 through
Office 2000. I have written many DLL's in Visual Basic 6.0 from a General
Purpose Class Library (which contains several Class Modules to extend various
VB Controls as well as Class Modules that encapsulate many of the Windows API
calls; a Database access DLL for a VB application (which separates the
presentation logic from the database access logic; to an Internet Transfer DLL.
I have written
Windows Services, and Service Monitor programs in VB.Net and many specialized
controls.
I was the Advanced
Visual Basic Special Interest Group Leader (SIG) for the North Texas PC Users
Group (which meets on the second Saturday of each month at Microsoft in
I have taught (part
time) C, Beginning and Advanced Visual Basic (4.0, 5.0 and 6.0) at
I have written in C
and Macro Asembler for years and have written many DLL's
in C for DOS and Windows Applications, and Applications in C on the AS/400. I
have also written in C++.
I recently changed
my web site to a host that uses Windows 2000 server with SQL Server 2000. I’m in the process of updating these personal
pages to be ASP pages instead of static HTML pages, however, I’m not quite
finished yet.
I am innovative,
quick learning and have an intense desire to develop state-of-the-art systems.
I have spent the last 30+ years creating techniques and methods, which enhance
system development while decreasing the time it requires for that development.
I have also spent much of that time teaching others those methods and
techniques.
I developed ISAM
techniques a year before I new they existed on other systems. I developed
Relational Databases and Database Normalization techniques two years before
I even heard of the terms or knew they existed. I have written two
programming languages, one of which was written 4 times on four different
platforms and with 4 different languages.
If there is a need,
I find a solution. Whenever necessary, I will write a 'Tool' to solve
the problem for me. The writing of the 'Tool', usually
takes less time than writing the solution. In addition to the languages, I have
written countless CASE Tools to solve a multitude of problems.
In 2008 I wrote the
Data Transfer Utility (DataXfer) ,
an extendable, and simpler replacement for SSIS that contains many more
built-in features that SSIS. You will find a link the DataXfer
Utility here.
For my work
history, see My Resume
Return to My Personal Page
Last Updated
February 14 by Stephen Johnson