Since the 70s, I was periodically involved in the creation of programs which invoked processor capabilities at a foundational level. Data storage and programming command sequences were directly manipulated through actual numeric machine language and ASCII assembly language. As development environments progressed, interpretation and presentation techniques evolved to integrate both access to rudimentary processes as well as presentations of the expressions of code. There are specific common denominators which are always present in programmed systems, but may not be accessible through the tools used for development. I will briefly review how operating systems have dealt with emergence of multitasking and how that has affected my use of the C/C++ programming environment.
Simultaneous with the previous section on the use of basic, I recognized the need for more efficient and reliable code. There are numerous advantages to the compiled code of C. In 1986-1989, I migrated a major portion of the TQ System code into C for DOS. Borland Turbo C and Microsoft Quick C were both used, and it began a decade-long pattern of using several development environments with the same code in order to take advantage of the features of each. After it was established in the marketplace, I extended the code using Symantecís ThinkC running on a Macintosh. At the time, it was the only environment that provided immediate emulation of the code in a separate window from the one in which code was being edited. Using the API of System Seven, I completely restructured the original essentially teletype character of the DOS code into the windowing environment. When Microsoft Windows 3.1 was released, it had solved their problem with fonts, used a nearly-identical API (Win16 v System 7) and the distribution for MS-based products was already established. Consequently, using preprocessor directives on the Mac code, I was able to very quickly bring the windowing version of my product to market. From 1993 to 1995, this code was refined during the expansion of product expressions of this code. When MS Windows 95 was released in 1996, the code was free from Intelís segmented architecture, and all calls were to an OS written in native C. This created opportunities for significant product enhancement. It was during this period that the obscure invocation of the IUnknown engine was necessary for commercially released products. I successfully struggled to find the new facilities in the OS, which resulted in the continuation of my successful product in an environment where companies like Lotus and WordPerfect were unable to bridge the migration. The solution for most developers at this time was an increasing reliance on the middleware which incorporated immediate solutions. By minimizing my use of third party software, including MS DLLs, my service and licensing overhead did not increase. By this time, the Borlandís C/C++ environment had been surpassed by the MS Visual Environment, although there remained advantages to the Borland-compiled code. In order to isolate program development from the API, a series of libraries were developed by others, such as MFC and ATL.
The original API has only recently regained general popularity as a vehicle, because many libraries were eventually recognized as unnecessary and part of a new instability evoked by problems with versioning and backward compatibility. In 1997, unrelated problems with my business required a several year hiatus from intensive support of this system. During these 8 years, approximately 2 man-years of effort have been available for the development of this large project. Current efforts have included the significant additions of graphics and features that have specific usages in selected vertical markets. Although the code remains as a desktop application, one of my goals is to complete some very original features that use sockets in networked environments. Just as the original release of product in 1989 required five years of completed development, the next release of this software will again create a new genre based on extraordinarily innovative processes. This work has been funded by my consulting business which generates income as an architect and for which I use the most appropriate coding techniques to achieve the clientsí objectives. I have had very few clients willing or able to invest the large amount of time required to create something in C/C++ as opposed to other application generation techniques. C/C++/C# has again become an important platform due to a number of events in the development marketplace. Interesting, the original instantiation of modules was simply called TSR (Terminate and Stay Resident). This ability to spawn and make libraries available has evolved through DDE, OLE, OLE2 and COM. The .Net runtime libraries have provided access in various containers through the use of many MS languages. No discussion of C would be complete without the mention of these current issues, as well as the present reliance on the inheritance of OOP and event-driven asynchronous techniques. I have watched the original loop upon which events are driven in C become more obscure. VB never even had direct access to it. The path from the original low-memory interrupts inherent in the microcomputer hardware to todayís environment of invocational modules has been a gradual route predicated by marketing priorities. Databases on different hardware, global metadata and the magic of ERP have created specializations which are each labor consuming. Efforts like Rational Rose to be pseudocode translators for business objectives are interesting vehicles which I have used to help with design are, in my opinion, unlikely to replace the need to understand the scope of systems computing. Daily use of Java in the creation of client-sided web sites for customers has become my most practical usage of this type of architecture. My deep experience with the C/C++ environment has provided a comprehensive scope of the current environments, which benefits my ability to architect and program using any tools.
Those aspects of development were important during the execution of the following projects. They are each detailed elsewhere on this site.
Various Clients, Direct and via other Consulting Organizations using .Net since 2000
Architecture, Programming and Testing; eCommerce, B2B, B2C
C#.Net (and VB.net) version 2.0 for Microsoft web applications using Visual Studio 2003, SQL Studio, Visual Source Safe & Firebug
eCommerce on IIS 6.0-8.0 (2003) for MS Internet Explorer, Firefox (Netscape 9,) Opera, and Safari DOMs
Decades of Architecture, Development and Migration -TQ Systems.
Development of Questionnaire Automation Engines -
In 1977-1981, I wrote a laboratory data system on a DEC PDP-11 system. Subsequently, it evolved into the Research Information Processing Systems (RIPS, 1981-1984) that I wrote and implemented at Hunt-Wesson Foods.
The principles of these perspectives were used in the TQ System for 802.3 networks for 8086 touchscreens with HP TCL. (1984-1989)
This has been migrated through Basics, C, C++, Win16/32, ASP and HTML for use on different platforms for different objectives.
See pages about the TQ System and Success Inc(1989-1997) for more information.
IWay software, 2 Penn Plaza, New York, NY - Java, XML
Gauss Interprise (Magellan, Opentext), Irvine, CA - Win32, Borland C/C++ v 6.5
SEI-IT Information Technologies, Los Angeles, CA
- The .Net alpha and beta version white papers were studied, reviewed and incorporated into proposals.
Dynamic Pathways Company, Newport Beach, CA - 15 years of development
Microsoft Certified for DOS, Windows 3.1, 95 & 98. 1M lines of code.
Borland C/C++, versions 3.0-6.5, MS Visual Studio, Visual C/C++, v5-6.0, Win32 API (1982-1997 full time)
Memorial Hospital, Pediatrics Department, Long Beach, CA - Motorola 6502 machine language.