Dan's Programming Computer History

Dan? A computer programmer?
Believe it or not, Dan has actually written software as well as collected it. Below is a summary of my computer programming experience.



In the beginning.
My first attempt at computer programming was on a Commodore VIC-20 and then later a Commodore 64.

At the time I had no previous computer education or experience. My local schools didn't get computers until two years after I graduated from high school. I learned about computers and programming on my own by trial and error -- and mostly error at first. "?REDO FROM START" and "SYNTAX ERROR IN ..." appeared on the screen nearly every time I pressed the Enter key.

My first computer programming project was to write a video game. It was done in Commodore BASIC on my C64. At it largest stage, and because the C64 hardware was slow, it literally took 45 minutes to load the program in the C64's memory. I would start the program loading, then run errands, do other stuff, etc., then come back to find the program would still be loading.

Because at the time I had no concept of structured programming, my video game program mutated into a horrible dead end of "spaghetti" BASIC code.

When I realized this mess of BASIC syntax had no hope of success it shattered my confidence for some time. In frustration, I boxed up my C64 and stored it. I never used it again for anything practical. Later, I donated it to an elementary school.



Getting over it and getting serious.
As I mentioned earlier, I lived in a time where elementary, middle and high schools had no computer hardware at all, let alone computer classes or computers in the classroom. I literally had to attend college to be educated in computer programming.

I attended Idaho State University to learn mainframe, midrange, and PC computer programming.

ISU



Back to the "BASICs."
I graduated from ISU with an AAS as an Advanced Applications Programmer and the knowledge of structured programming in several computer languages (COBOL, COBOL/CICS, RPG II, FORTRAN, Assembler, C, BASIC). I tried my hand again at BASIC programming -- this time with PC-based GW-BASIC, and this time for writing application programs instead of games.

But just as my ignorance of computers had limited me back with my Commodore 64, I was also ignorant of how the computer industry operated in the area of software composition. I did not know at the time that a GW-BASIC program would not sell as a commercial product. I would need to write programs in a language capable of compiling my code into executable programs.



My first commercial software program.
By this time I was working as a Computer Operator. My employer knew I was qualified as a computer programmer and gave me an opportunity to create a real-life PC-based business application. Using a DOS-based programming language called Clarion Professional Developer, I wrote a database/reporting invoice system. Using invoices called "local orders" I named it Local Order Invoice System, or "LOIS." At the time, my employer's local payroll clerk was also named Lois.

This version of Clarion had no mouse support at the time, so the system was completely menu driven via keyboard. The user needed custom features that Clarion's fourth-generation code generator could not create. Clarion included a source-level editor so I was able to provide the custom features by writing custom code and integrating it into Clarion's code. Once the application was completed I was allowed to maintain and upgrade "LOIS" as needed.

In addition to maintaining and upgrading the "LOIS" system at work I tried yet another approach to BASIC programming at home. I purchased Microsoft QuickBASIC 4.5 which allowed me to write BASIC programs and compile them into executable programs. This went mostly nowhere again because I wasn't focused on what kind of program to write with this language.

I used QuickBASIC to compile a practical joke program which simulated a massive, and very over-exaggerated, system crash complete with blinking "error" messages, simulated hex dumps, more cryptic "error" messages, and buzzing sound effects. I took this program to work and loaded it on one of the main office clerk's PCs and set up a command in DOS's AUTOEXEC.BAT file to execute it the next time it was booted. I worked in the same office as this clerk and after loading the program on the computer I was told to take some supplies to a site a few miles away. While I was gone the clerk evidentially had to boot the PC because when I returned I was greeted in the hallway by a clearly upset clerk, hands on hips and a scowl that could bend tempered steel. I knew the clerk had seen the program but feigned ignorance. "What?" I asked. "I think you know ' what,' " the miffed clerk replied. The amusing part, I found out later, was that while I was gone and after they had rebooted the PC the clerk and a second clerk had attempted to write down the "error" messages as they were being displayed. What ticked them off was the final screen of my program that said, "Just kidding!" The irony of this was that the clerks in this office -- all female -- could play practical jokes on each other left and right and they all took it as good, clean fun. But when I played a practical joke on one of them, being the male I am, it wasn't perceived as humor. Chalk it up to experience. I didn't get in trouble for it but I never did anything like it again, either.

I also tried making other programs using Clarion Professional Developer. It was this programming language I used to create my first DOS versions of Expense Log and Budget Planner. The first versions were crude because they had no mouse support and everything was keyboard driven. These early versions were never distributed.



"LOIS" gets an upgrade.
When my employer's computers were migrated from DOS to Windows 3.1x, the user of my DOS LOIS system needed a mouse- driven invoice system.

Instead of getting a Windows-based programming language they upgraded to Clarion's newer mouse-supported DOS programming language, Clarion Database Developer. This version also allows the creation of standard pull-down menus. With mouse support and pull-down menus, LOIS finally took on the look and feel of a professional software system.

But moving from a procedural logic to event-driven logic was not easy. It was like learning to write with your other hand -- the brain had to be taught to think differently. Since my employer gave me no training for these programming languages I was left to learn them on my own. I adapted and soon I had created a new version of LOIS complete with pull-down menus and mouse support. Where the older versions were tab-and-enter navigation, LOIS now had point-and-click ease of use.

I also used this new knowledge to write improved versions of my Expense Log and Budget Planner programs. With pull-down menus and mouse support, not to mention video report capability, these programs were now ready to compete with the shareware the "big boys" wrote. The Internet had not come to our corner of the world at this time so I had to distribute my programs via BBSs (Bulletin Board Services). There was only one BBS in my local calling area. I uploaded my programs to this local BBS and very slowly copies began to spread from one BBS to another. Within weeks I had my first shareware registration -- from someone nearly 2,000 miles away!



"Windows" of opportunity.
Layout for Windows I purchased the Windows 3.1-based programming language Layout for Windows. Being familiar with the DOS event-driven programming of Clarion Database Developer I thought it wouldn't be too hard to adapt to a 16-bit graphical language. Was I ever wrong.

I struggled for days and sometimes weeks to grasp even the most basic GUI programming routines. Again, I was teaching myself how to do this -- no training or schooling involved. This self-imposed training was frustrating because I felt I should have progressed faster than I did. Then one day the proverbial light bulb came on, click! Suddenly the concepts and how to apply them began making sense.

My first 16-bit Windows programs were hideous compared to what later versions would evolve into. Special features like database search engines and video reports had to be created from scratch with Layout. Basic database functions like adding, changing, and deleting records also had to be manually created -- they were not generated for me. Never having written routines like these before, the first ones were crude but they worked. As I got more familiar with Layout and the way it worked with Windows I was able to greatly enhance and improve these routines.



Cranking out the programs.
Once I had become familiar with Layout for Windows I went into a programming frenzy. I wrote four complete software systems. Not simple little programs, but complete database/reporting systems with multiple reporting options and both print and video output. And I wrote multiple versions of them as I improved each of their features.

The systems I wrote are:
- Budget Planner for Windows
- Child Support Tracker for Windows
- Inventory for Windows -- Computer Software (later renamed Software Inventory)
- Probation Offender Database System (originally a contracted system for a law enforcement probation office)




The "global village" finally comes to our area.
The Internet finally reached our little corner of the world and I learned another type of "programming" -- HTML.

Soon I had a website featuring my shareware programs, viewable by anyone around the world with Internet access. Instead of relying on people to move my shareware from BBS to BBS I now had my own on-line storage area that anyone could download my programs from. I could now communicate via e-mail with people around the world to discuss my shareware.

With this global customer base and improved versions of my programs, I started getting more and more shareware registrations.



32-bit programming.
As 32-bit Windows 95 became more widespread, I taught myself 32-bit programming by purchasing a 32-bit version of Borland Delphi -- another language I had not previously programmed in. I had yet another learning curve to conquer. And as if that wasn't self-punishment enough, I set out to write my largest, most complex software system to date. Software Inventory 97 Enterprise Edition ended up having seven databases and over 80 reports. This involved more complex relational database programming. A friend tutored me on the basics of relational database programming and it was with this knowledge I was able to write this system. It took me 5½ months to complete this system.

And during this time I also wrote a 16-bit Windows version of LOIS and in 1997 a 16-bit form generating program for my employer.



Seen by all, appreciated by a few.
I became known to the shareware software community, even winning ZD Net's highest five-star award for my 1.4 version of Software Inventory. I landed two programming contracts over the Internet -- one to write a probation offender database system and a customized version of Software Inventory for a retail business.

I was revered as an IT "professional" and shareware promoters from around the world were e-mailing me, offering contracts to sell my shareware. In the end, I turned them all down because they wanted too high of a percentage of the sale price. I would have ended up like rock groups owned by the music industry -- making pennies while the promoters reeled in the big bucks.



Collecting, not creating.
For some time I have done little in the way of programming. I have concentrated more on collecting legacy computer software and hardware and preserving some of that vintage code for posterity.



Questions? Comments? Contact me.



<< PREV


Main About Page | Top Of Page | Contact me

Updated last on 01/01/2009.
All titles are the property of their respective owners.
Copyright © 1999-2009 Dan Rose - All Rights Reserved.