While I have had many jobs in my life, computers and software have always been a central part of my career. After gaining my first programming job in 1971, I recall telling a friend that the $4.50 per hour salary was great, however I would have accepted the job for no salary at all, because I was really motivated by the joy of writing code. This chronology covers up to Year 2008.
I would later start a niche software company ( Nexus Software ) in 1985. Thanks to many talented indviduals I hired along the way, Nexus was successfully sold in 1999 to the Diebold Corporation. Like most entrepreneurs, there would be many times when one has to be prepared to go into survival mode. For me, survival mode meant answering the phone, taking out a second mortgage on one's home, being sales person as well as software programmer (of course, I preferred to call it software architect), and more importantly doing any job that no one wanted, or any job I could not afford to fill.
However, through the years, my first love continued to be the technology and joy of software development. This web page discusses some of these experiences and while I never became multi-lingual in the sense that most people can relate to, I did learn a few computer languages along the way...
Year 2008 - Election Year - It Is About the iPhone Stupid...
I have become quite skilled with Microsoft's web technologies over the years; IIS7, ASP.NET, AJAX, Silverlight, etc, however I never really developed much of an interest in Microsoft's mobile platform; Windows Mobile. As a result of being a MSDN Universal subscriber, Microsoft gave me a free Pocket PC (pictured to the left below) several years ago, however I still prefer to use my basic cell phone (pictured to the right below).
Yes, I have always admired Microsoft technologies. I started promoting Microsoft technologies to the finance industry in 1992. I stood on my feet all day long at many a trade show (in the US, Europe and Pacific Rim) which promoted Microsoft technologies. I promoted Microsoft technologies as much as our own. The technologies were "one-in-the-same" I suppose. Nexus was embracing Microsoft, and Microsoft was recommending Nexus.
However, one does have to recognize a paradigm shift from time to time. The iPhone represents such a move. I would have to place the iPhone right alongside some other past products which genuinely changed the way people work, live and think, such as:
- IBM System 360 - 1964 (started the modern age of computing)
- IBM PC - 1981
- IBM PC/AT - 1984
- IBM Thinkpad - 1992 (I have probably owned seven of these over the years)
- Apple iPod - 2006
Being a software developer at heart, the only way to fullfill my interest in the iPhone is to go out and acquire an iMacBookPro. The iPhone SDK requires a Mac, and I have researched the possibility of executing Mac OS X in a PC based virtual machine; not on planet Earth anyway. It would appear that someone got Mac OS X running with VMWare, however such hacking efforts violate the Apple license agreement, so I suppose I will spend $3,000 to purchase the iMacBookPro pictured below, just so I can start iPhone software development with the iPhone SDK. I figure I will do some "in the cloud" development, using Microsoft .NET technologies to deploy "the cloud" and the iPhone SDK technologies for the iPhone "cloud recipient". I wonder what airport TSA staff will say when I am now carrying two laptops through security; my trusted Thinkpad, and now a iMacBookPro. Interesting how Microsoft have gotten so much bad press for years, yet Apple will not even allow its iMac OS, which runs on Intel based processors, to run on anything other than an Apple assembled Intel processor. Nonetheless, here it is:
The new language to be discovered here is Objective C. It shall be interesting to see how this effort goes, and where this detour in the road may lead. I will keep you posted. At a minimum, this effort should satisfy my continuing curiousity for emerging technologies.
...and yes indeed, we are in an election year. If you have ever walked into an Apple store then you probably have more technology exposure than John McCain (or is it MacCain ?). It was Ronald Reagan who said..."...Government is not the solution....Government is the problem...". If a US Senator has been on planet Earth for 72 years, yet he knows absolutely nothing about the force that drives the worldwide economy, then I think we now know why ... "...Government is the problem..."... yes indeed.
However, anyone can slip up in an interview. This is what Steve Balmer had to say about the original iPhone.
The 21st Century - Virtual Computing on the Desktop
The above desktop illustrates the power of today's desktop. In this case Microsoft's Virtual PC 2007 product is being used to provide virtual computing for the following operating systems... from top, clockwise...
- IBM PC DOS 6.1
- Microsoft Vista Home Premium Edition
- Microsoft WIndows 98 Second Edition
- Microsoft Windows XP Professional SP2
- Microsoft Windows 2003 Server
The above operating systems are being hosted on an IBM Thinkpad T42 with Windows XP Professional SP2 and 2gb of memory.
Between 1992 and 1999 I was primarily running Nexus and traveling around the world, while also being heavily involved in sales activities. In other words, success sometimes means not being able to be a software developer.
After the sale of Nexus to Diebold in 1999, I found myself jumping back into software development once again. Such development activities required the following languages:
- IBM PC Assembler
- C# and the .NET Framework
- Web Technologies such as ASP.NET, ASP.NET AJAX and Silverlight
A History of Windows on the Desktop...
1984 - The IBM 4700 Finance Communications System
The IBM 4700 Finance Communication System (FCS) consisted of a programmatic controller and related peripherals, used primarily in finance industry retail branches. The graphic above was the best I could do at finding a photo of an IBM 4702. I think the IBM Corporation would like to forget about the 4700. In fact, the IBM 4700 product line may have been the most forgettable product the IBM Corporation ever made. For me, and due to its proprietary architecture, the IBM 4700 product line spelled profitability.
Introduced in the same year as the IBM PC (1981), the 4700 FCS was the follow-on product to replace the IBM 3600 FCS. Unlike the IBM PC, the 4700 FCS was very much a proprietary hardware and software product. All programming for the IBM 4702 processor was conducted with an IBM mainframe based language called 4700 Finance Communication Language (FCL). 4700 FCL essentially used the IBM mainframe Assembler Language macro capability to generate 4700 FCL op codes, which in turn were downloaded to the IBM 4702 and interpreted by the 4700 microcode. If one has a creative imagination and compares 4700 FCL to today's modern world of programming, 4700 microcode interpretation of 4700 FCL op codes is similar in concept to the Microsoft .NET Common Language Runtime (CLR) and its interpretation of Microsoft Intermediate Language (IL) instruction codes.
The 4700 FCS was the basis for the formation of Nexus Software in 1985, and would be the primary focal point of development within Nexus from 1985-1992 until Nexus embraced Windows on the server and desktop for retail branch automation.
In 1980, I snapped this photo below of the IBM 3624 automated teller machine (ATM) located next to the UCLA campus at the Security Pacific National Bank (SPNB) Westwood, California branch. I took this photo the weekend before deployment of the SPNB online ATM network, at the time the largest IBM 3624 network in the United States. SPNB's primary competitor at the time was Bank of America, which also had deployed their own Versa-Teller ATM network. SPNB was acquired by Bank of America in 1992, however Bank of America was later acquired by NationsBank in 1998.
The IBM 3624 Automated Teller Machine was the follow-up model to IBM's first online ATM, the IBM 3614. The IBM 3624 was quite popular throughout the worldwide finance industry marketplace, so much so that all major ATM manufacturers (including Diebold and NCR) emulated the IBM 3624 in competitive offerings. The IBM 3624 was a member of the IBM 3600 Finance Communication System family of products, consisting of finance industry retail branch controllers and devices.
While the IBM 3624 did not offer a specific programming language for custom execution, its customization was based on a series of IBM Mainframe BAL macros called a 3624 Control Program Generation (CPGEN). One of my more challenging projects was an IBM mainframe based product, called 3624 Functional Verification System (FVS), which emulated the IBM 3624 for testing and functional verification purposes. This product required in-depth knowledge of the IBM 3624 CPGEN process and related IBM mainframe Host Support Services protocols.
The World's First ATM ?
The British claim to have the first ATM in London in 1967, however the Americans also lay claim to being among the first...
1971 - IBM System 360
The IBM 360 series of computers was announced by the IBM Corporation in 1964. The System 360 introduced a new era of business and scientific computing in a series of computers with 19 graduated configurations of speed and performance. Many System 360 architecture compatible computers have been offered over the decades since the original 1964 announcement, including System 370 (introducing virtual memory), 3081 processor, 3033 processor, 3084 processor complex and System/ 390.
I used Fortran and Programming Language One (PL/1) on the System 360, as well as 360 Basic Assembler Language (BAL) and COBOL.
Operating systems used include DOS/360, OS/VS, MVS/VS and VM/CMS. Most memorable projects included system channel programming, Basic Telecommunications Access Method (BTAM) control programming and Virtual Telecommunications Access Method (VTAM) control programs, all using BAL.
Transaction processing sub-systems used include Customer Information Control System (CICS) and Information Management System (IMS).
Original System 360 Announcement
IBM Mainframes- IBM Archives
The Ancient History of System/360
A System 360/370 was typically a multi-million dollar investment for most of my clients, and it also represented a computing resource for many concurrent users. As a result, direct use of the System 360 Control Panel for debugging purposes was rare. However, by the mid-1970s the Time Sharing Option (TSO) became a standard feature on the System 360/370 line. The Interactive System Productivity Facility (ISPF) was also used in conjunction with TSO to achieve practically all interactive debugging tasks required by either system programmers or application developers.
Data communications became more and more common with the System 360/370, typically made possible with the 3270 line of data communication terminals. TSO/ISPF was also typically used on 3270 terminals.
Time Sharing Option (TSO)
Interactive System Productivity Facility (ISPF)
1969 - IBM 1401...
The IBM 1401 Data Processing System was a hugely successful business computer. Announced in October 1959, the IBM 1401 was initially programmed with its machine language called Autocoder. I spent many sleepless nights (what I called all nighters) in front of the IBM 1401 control panel while wearing my interactive debug hat. As I recall, minimum core memory was 4k, and if you were really lucky you had a 16k version. One could waste a lot of time just waiting on the program (card deck) to load in the IBM 1402 Card Reader. One time saver was to visit the men's restroom while one's program was loading. One night while alone at the computer lab I visited the men's restroom only to encounter a live snake, at which point I promptly returned to the lab where I also found a card jam. I knew this was not going to be my lucky night.
The 1401 was so popular that (according to legend) 1401 applications were still running in Year 2000 on 1401 simulators and this presented a special challenge in the Year-2000 conversion. You can bet that 1960-era programmers with a only few thousand bytes of memory at their disposal didn't "waste core" on 4-digit years!.
The IBM 1401 and companion peripherals leased for a minimum of $2,500 per month.
IBM 1401 - IBM Archives
An interactive VS.NET 2005 debug environment it was not, however you could single step through core memory (single cycle process), display memory, alter memory and restart debugged programs. To delay the need to cut a new program card deck (assemble the Autocoder source code) one could always include a bunch of NOOPs (no operation machine code) in your source code and then interactively alter the NOOPs to executable code at the IBM 1401 control panel.
I knew that low-level component software was for me when I wrote my own Autocoder based macro language and an Indexed-Sequential file access component. SQL Server it was not, and Larry Eliison certainly would not take notice, but it did seem amazing for the times.
1969 - IBM 1620...
My first exposure to computers was the IBM 1620. Programmed in SPS (Symbolic Programming System, the 1620 assembler) and FORTRAN. The 1620 was IBM's first attempt at offering a scientific computer, introduced in 1959 and withdrawn in 1970. Memory was in the form of "core memory" rather than a drum.
IBM 1620 - IBM Archives
A closeup of the 1620 control panel. If you want to be close to the "iron" then the 1620 control panel is your interactive debug environment.