I am a programmer/network administrator with 40+ years of experience.  My love of programming began in 1977 with the purchase of a Radio Shack TRS-80 Model I (4K) microcomputer.  With that machine I learned BASIC (Level I) then later expanded the unit to Level 2 with an expansion interface and a 5 1/4″ floppy drive with TRSDOS.  From there I experimented with assembly language which gave me the experience and confidence to pursue a bachelor’s degree in Computer Science.

University assignments necessitated the change to IBM PC/compatible and graduate from BASIC to compiled Pascal.  Pascal opened up a wide range of coding opportunities for text-based console applications.  However, this was at a time when finding information was pretty much limited to either printed books, or the “internet-of-the-day”, CompuServe.

While researching information on problems I was implementing in Pascal, most all examples of code I found were in C.  This forced me to learn C, to decipher code snippets, so I could implement them in Pascal.  Eventually, I left Pascal and took the deep dive into C, then later C++, the language I use now. 

By this time, I had finished my degree and was working in a manufacturing plant as the IT guy.  It was just me, no one else.  It was an absolute playground for learning and experimenting.  Work was truly fun.  This was still before Windows 3.1, and networking began to fascinate me.   This was when Novell Netware was the major player in networking.  I bought some reference books from Novell on their IPX protocol and I experimented with code to send and receive data over the network (LAN).   I had also written as one of my first major C projects a windowing system for console applications that allowed for pop-up windows for user input or menu selections.

Windows 3.1 became the norm for PCs and I fought for a long time to keep my console applications alive and relevant.  I tried more than once to be a Windows GUI programmer, but it was such a paradigm change that after giving it an attempt, I returned to console programming, but began implementing some of what I had learned in my Windows attempt in my console applications.  Namely, mouse cursor movement and text selection, buttons, check boxes, text edit boxes, and list boxes, all using a message/event pump.  I honestly put more effort into this attempt to keep console applications alive than it would have been to just transition to Windows programming.

Eventually, I took another deep dive into the world of Windows and the Windows API.  It was tough at first, but after a while, things started to click.  But this was before Win32.  This was 16-bit Windows.  I am glad that I learned the way I did, because once Win32 became available, Windows programming became very straight-forward and logical.  My Windows programming continued, eventually realizing the lack of a good editable grid control.  I spent many years developing at first a control I named “BabyGrid”, then secondly, to fix the issues I experienced with BabyGrid, a newer and better grid “ZeeGrid”.  I developed several more controls that were all message-based, but were not polished enough for general release to the public.  My actual intention was to sell them to provide retirement income for me.

Copy protecting a Windows DLL file is nearly impossible.  It’s possible to do, but absolutely not worth the effort on both my end, and for my customers.  It all just seemed like an exercise in making something simple, complicated.  I eventually gave up on the idea of selling it, then realized it would be a terrible waste of my time if ZeeGrid wasn’t used, after all the years of development I had put into it.  That’s when I made it freely available on my website.  For the first several years, I got some feedback on it, but mostly to fix some issues that I hadn’t come across in my environment, or to request new features.

Eventually, the feedback became less and less, then stopped.  I could tell from Google analytics that the website was being visited by just about every civilized country in the world, which then trickled off to mostly visitors from China.  This puzzled me, because ZeeGrid didn’t support unicode, so I couldn’t quite understand the Chinese interest in it.

My interests began to change, more into the hardware side of computing.  I began experimenting with Arduino’s because that seemed to be the perfect blend of hardware, and software.  I then found it necessary to develop another ZeeControl which I never released, to be able to do serial communications completely message-based.  This would allow me to have an Arduino communicate directly with a Windows application, or the application drive data back to the Arduino, allowing real physical output.  Because of the success of my controls, I never understood why Microsoft did not provide any new message-based controls.  As I had personally developed working message-based controls to provide a grid, charting, HTML rendering, imaging, barcoding and others, Microsoft seemed to have abandoned this basic technology.

But then, my interests took another turn.  From my first IT job, I remembered how the data that ran the business was on a mainframe, and we used regular IBM PCs running terminal emulation software to access it.  It was an IBM mainframe, and was running CICS and TSO.  It was so long ago, I can barely remember it, but the thought occurred to me, why not program, or attempt to program, a system that users can connect to over SSH on a Linux computer that will provide the same capabilities as that mainframe.  After all, it’s the simplest kind of application.  It’s console-based.  It just uses keyboard input.  Output is simple text (colored) on a screen with no scrolling.  If more information is available than will fit on a screen, the user just presses a “continue key”, like F8 or something, then another page of text is displayed.  F8=next, F5=previous, or Simply “Page Up” and “Page Down”.  If this project is successful, it would allow small business owners to essentially have mainframe/database access comparable to what was provided in the olden days by a mainframe.  I don’t know how many simultaneous users it could support, but I am assuming more than enough for 100’s or 1000’s of small businesses.  My goal is to develop the “system” in such an open way that others can write the applications that will run on it.

So now, the big obstacle in this project is the Linux hurdle.  I consider myself a moderate to advanced Linux user.  But I’ve always been a Windows or DOS console programmer.  So the trick will be to see how easy it is to transition into the role of a Linux developer.  Some of you may be way ahead of me in this regard.  Some of you might have been considering developing on Linux, but have never taken that step.  I will document my adventure on this Blog for those interested in following along.

This website allows for commenting.  If I find that there are no comments, I may change in the future to do my development in “private”.  I say this because I know blogging my progress in this project is going to be a lot of work.  The people who take the time to comment are a very small minority.  But also, keep in mind that when feedback goes away, there is no incentive on the part of the developer to provide for an invisible population.