for May 2021
Here is a quick run-down on what you will find in this bulletin:
These topics will be dealt with in more detail throughout this
Changes to GOWIN.EXE for Updating
During April we released a new version of our Windows PC program to our Canadian customers. In addition to some changes that were necessary for one company's products in Canada, we had been working on an annoying fix for a problem that we were encountering with the update process. The following will give you a better idea of the routine challenges that we face in keeping our software simple and easy to use.
There are 3 files that are typically involved with the updating process. These three are:
GOWIN.EXE is the program that you run in order to do quotes. The other two are "servants" of GOWIN.EXE that do very simple things related to updates. The other two programs are called when needed by GOWIN.EXE.
CQSDOWN.EXE is the program that reaches out to the internet to download and obtain updates (files) from our servers. There are basically 3 types of updates:
You should never attempt to run CQSDOWN.EXE directly. If the program needs to be used for updates, GOWIN.EXE decides whether that should happen. If GOWIN.EXE requests it, CQSDOWN.EXE will download the necessary files as they are required.
Monthly updates are the most important updates and happen at the beginning of each month. The logic is pretty straightforward. Assuming that you have an up-to-date subscription to Compulife, with a valid subscription file, then beginning on the 28th day of the preceding month GOWIN.EXE will call CQSDOWN.EXE to inquire through the internet if there is a newer monthly update than the update currently being used. If CQSDOWN.EXE sees no new monthly update, it returns to GOWIN.EXE and GOWIN.EXE goes about its normal business of doing quotes.
Generally this inquiry to the internet happens very quickly. The file which the program downloads to see if there is a new update is a mere 16 bytes long. Even with the old antique 300 baud modems, that was a pretty quick download. With the new faster internet connections, this is done so fast that you almost go back in time.
If GOWIN.EXE discovers from that download that there is a newer monthly update, it will alert you and ask if you want to get it. When you say "Yes" GOWIN again calls CQSDOWN.EXE and it fetches the monthly update file called MONTHLY.CMP. When CQSDOWN.EXE is done downloading MONTHLY.CMP, it hands things back to GOWIN.EXE which starts again.
As part of its startup routine, GOWIN.EXE checks for the existence of a monthly update file. If/when GOWINE.EXE finds it, it will then call the servant program called DECOMPW.EXE. DECOMPW.EXE has only one job, which is that if there is an update file sch as MONTHLY.CMP, it opens the file and begins to unpack the MONTHLY.CMP file.
Compulife's CMP files (CMP is short for compressed) are ZIP files much like the compressed ZIP files you can create with commonly available software. The difference here is that Compulife long ago developed its own proprietary ZIP and unZIP programs to ensure that our Zipped files (CMP files; that's the suffix) could only be created (zipped) or be unpacked (unzipped) using our proprietary program.
Why do we use proprietary software for this job? This is to ensure that hackers do not obtain one of our compressed update files, unpack it, modify files in the package or add files to the package, which would in some way could be used to infiltrate your computer. We then added "checksum values" to the packed files so that the first thing our unpacking program (DECOMPW) does when it is processing the file, is to check the CMP file to see if anything has been altered in the file. If even ONE byte of the file has been changed, the program will consider that update file to be "corrupt" and it will not process it and instead it will give you an error message. That's why, if a download of an update file was interrupted, and you did not get the entire file (unbeknown to you) you will get a "corrupt file error" message, which is coming from DECOMPW.EXE. If that happens, the program will ask if you want to delete the update file. After the file is deleted it will try to download a fresh copy.
Once DECOMPW.EXE is happy that the update file (CMP file) has not been messed with, the DECOMPW.EXE file unpacks the file and replaces the files in your COMPLIFE folder with the new files.
This has been a VERY reliable process for us but we can encounter problems. In the old days CQSDOWN.EXE was actually part of GOWIN.EXE. We separated the download function from GOWIN.EXE, and made that a separate program, because we encountered some anti-virus products (in some cases viruses that you pay to put on your computer) that would attack GOWIN.EXE because it was attempting to communicate with the internet.
Some sloppily made anti-virus products don't take the time to actually check to see if there is a virus, and because those crappy anti-virus programs assume that a program file is "guilty until proven innocent", the program file can be quarantined. In the good old days we started to run into this, and because GOWIN.EXE was the program doing the download, that was the program that got quarantined. When that happened a very unhappy customer would call Compulife to complain that Compulife was no longer working and when we investigated (which burns up our service time) we would discover the problem was not us, but a wild child anti-virus product that attacked us. And if the file being attacked is GOWIN.EXE then you can't run quotes.
After we got fed up with enough of those calls we decided to separate the downloading component from GOWIN.EXE and called it CQSDOWN.EXE. That way, if CQSDOWN.EXE got clobbered, you would still be able run quotes. At the same time we offered the alternative of being able to manually download the CMP files. If the problem with your anti-virus program was something you could not fix at the moment, you could still run quotes and you could still get updates by manually downloading them. Once again, all of these changes were made necessary because of some anti-virus programs attacking our software.
We also have trouble from time to time with DECOMPW.EXE being attacked and quarantined by some of these shabby anti-virus products. If that happens, when the GOWIN.EXE detects a CMP update file, it asks DECOMPW.EXE to process it. This then produces an error message because DECOMPW has been attacked and quarantined (removed from use).
Have I mentioned how incredibly unhappy I get with anti-virus software products that maliciously attack our software? And of course we have to endure the phone calls from subscribers who assume the problem is with our software, because they have never had a problem with their anti-virus software ever (or so we are assured).
Updating and The Indexing of Files
After Compulife does an update it needs to index our files. Compulife uses a pretty rudimentary mechanism for indexing data files in our software. Why do we need an index?
Unlike some programs that put ALL their files in one big giant file, Compulife breaks out data files into smaller pieces. 10 year term products are in 10 year data files, 20 year term products are in 20 year data files, etc. How do we aggregate all that information so if you pull up a company, all those various products, in all those various files, are listed on the same product menu for a company? And how does our program know which files to open and which products to get from those files if you ask for them? Simple, we have a function in GOWIN.EXE that indexes those data files.
Of course over time our database has grown, and we have more and more data to index. This means that after an update file has been downloaded and been processed, and before the program can let you run quotes, it has to "index" the data files. Depending on how fast your computer and hard drive are, this can happen instantly, or can take a few seconds. Just to give you an idea how much work is involved, just one of the files that we index is the FORMS.DAT file, which has a list of all the life insurance company PDF forms in our forms database. In the U.S. that forms file is over 1 megabyte of pure text, with over 6,200 lines of information, one for each form in the database. That too is part of the indexing process.
Could we make the index for that file work more quickly? Yes we could, but when we embarked on providing a forms library we committed ourselves to an "open architecture" so that the data could accessed by other programs. For example, it is VERY easy to pull FORMS.DAT into a spreadsheet. The point was to assure the life company that if it needed to stop relying upon our software to talk to the data files, it would have other ways to continue maintaining and using those data files. It was our position, very early on, that life insurance companies should not have to blindly trust a forms provider with providing software and updates, and that if the forms provider stopped doing a good job, the files created could be then used by the company and other software written to talk to those files. This is VERY different from the product and rate files that we maintain, which we consider VERY proprietary. To protect those files they are encrypted and copy written. Those files belong to Compulife and you cannot talk to them without buying our software.
The way the indexing was working up until now, was that the GOWIN.EXE program would start and if told by the update that it needed to "index", GOWIN.EXE would begin the indexing process BEFORE any display screens would appear. In effect it just made it seem that the program was slow in starting. This created a pregnant pause, the pause being longer depending on how fast or slow your computer is.
The problem is/was that some of our subscribers, being in a super big rush, would think that nothing was happening and so they would start another copy of our software. The second copy of the software would open files that the first copy of the software was processing and the program could no longer write the index results to our index files. This created an error and of course this lead to a phone call. And you guessed it, we have had enough of those phone calls also.
NOTE: It is always nice to talk to subscribers but we prefer it to happen when you are NOT having a problem with the software. Software problems are routine but when we routinely have the same problem we work to get rid of that problem which consumes our time and your time.
Therefore, in order to address this particular issue we have now changed the startup sequence for the GOWIN.EXE program. This was a much bigger change than you might imagine. Now when you start the program it will actually load the Red Master Menu first. Then if an index needed to be done the program will actually display a window that tells you the indexing is occurring and ask you to wait. Could you start another copy of Compulife and still screw up the process. Sure but then that's on you. At least with the new program you will know what is happening.
As we said, the change in sequence was bigger than you imagine (there is a lot of stuff that happens during startup) and the change to the software led to a lot of bugs that had to be addressed.
While we were making that change and playing with that change to fix bugs, a Canadian life company hit us with new products that required additional changes to the program. We decided to make those changes to the new GOWIN.EXE with the index changes. That was then released in the first midmonth update in Canada in April. It has generally worked very well but we have yet to see it go through the automatic monthly update process and we are waiting to see how the May monthly update goes in Canada to be completely satisfied that all is well. Once we have gotten through that, and are satisfied that all is well, we will then release the new GOWIN.EXE to our U.S. subscribers in one of the first midmonth updates in May.
Comparison Columns Will Retain Settings
In that new GOWIN.EXE there is a new feature that some have asked for and which was on our wish list for AFTER the new program and data overhaul has been released. However, persistent lobbying by one subscriber (you know who you are) moved it up in the schedule. If I seem VERY reluctant to make these changes it is because every time we take time to modify the old program, it takes time away from the process of building the new software which we want to get to in order to address all kinds of problems, challenges and limitations that you don't see, and which we often have to do work around's to address.
The latest change to the comparison windows is that if you modify the widths of columns in the comparison window, and then exit the program, it will remember the widths of those columns for the next time you start the software. Sometime those with nice big wide monitors want to stretch the width of the comparison window and columns, allowing more space for company names, products names, premiums, etc. This is particularly true if you pack the comparison with more columns like annual and monthly premiums (at the same time) and/or if you add A.M. Best ratings to the display. The comparison windows with out default width and column widths can get crowded.
The new program now remembers the changes you make when it exits and you won't have to play with it again the next time you start it up.
CQS.EXE The Build Continues
Progress continues, but we ran into a big issue that slowed us down and will delay the release of the new program. The screens that you see displayed in our current program are created by a programming tool called Delphi which we have been using for over 20 years. Delphi has been a great tool, and continues to be widely used by many software companies. However, Delphi like our software is a bit dusty and we decided fairly quickly that to get a "different look and style" more consistent with what we can create in web browsers, Delphi must eventually be replaced.
So the logic was simple, replace some of the pages you see with our new menu, client screen and utilities (called settings) but for major components like comparison screens, Pick 12, etc., continue to let Delphi handle those. This sounds like a great idea, but we have discovered that creates a host of problems we did not foresee. To deal with the road block, we believe it requires us converting the pages out of Delphi into our C++ code.
Our programmer, as he was struggling through this, found another software language vendor who sells a utility that does Delphi to C++ conversion. So we invested the money for that utility. Like most utilities that we first license, the new utility converts pages pretty well but we have encountered some of our pages that are jamming up the converter. Our programmer is now working with the software vendor to help the vendor sort that out. This is a road we have been down many times before.
All of that to say that it's another unforeseen delay. Having said that, the whole process of encountering delays is NOT unforeseen; things often do not work as advertised. And from my point of view, while that is frustrating for us, and it is why I do not like to introduce things to you until they are as solid as possible. I believe that is why the VAST majority of Compulife subscribers are happy that they have software that works reliabily. And it's also why you will continue to have our existing software that works, until we have the new software that works just as well and hopefully even better moving forward.
Reviewing the Process
With the new software the menu and client screen will be changing in the first version, and while those will look different and be organized differently (hopefully simpler and better), other elements or our software like the comparison window or Pick 12 windows will work EXACTLY as they do now.
The purpose of this step by step process if to get your feedback before we get too deep into the development of the new software. We will want your input and expect to learn a great deal from that input. And customer responses always inspire us to come up with further changes and innovations that address common issues and concerns.
Originally we were going to do the overhaul of the data structure, and then release a new version of the software to go with it. We decided to break the revisions to the program into two stages, making the first stage compatible with the OLD data structure, then introduce a new data structure that takes over from the old, and then finish the overhaul of the new program that talks to the new data structure.
In retrospect I am confident this is the right way to do this, as it will give us a longer transition period between old and new, which will give us more time to address feedback from you.
There Will Be a Careful Transition
You will not initially be FORCED to use the new program, but it will be available. Later the old program will stop and ask you if you would like to try the new program. Later the new program will replace the old program but you will still be able to go back to the old program as an option. Eventually the old program will disappear, and you will be forced to use the new program. That will NOT happen until the data overhaul is complete, and we are satisfied that the new system works as well as the old system.
We are rolling out the new interface before the overhaul to the data structure to give you time to adjust to it, and for us to fine tune it and modify it based upon YOUR feedback. While this is Compulife's software and you need to learn the way we do it, to another very real degree this is your software. We want to hear from you because YOU are the person using the software and we want to make it a good fit for you. That is a process we have engaged in for the last 39 years, and we are not about to change a winning formula now.
Our Current Programming Plans for 2021
The following is the current order for new work that we will be doing in 2021:
Introduction of New PC Version: CQS.EXE
Overhaul Of Current Product Data Files
Introduction of Compulife Basic Plus (with Pick 12)
Anyone with questions about any of these upcoming projects can call Bob Barney to discuss:
Please don't email me essay questions, just call. If I'm not in, email me your phone number, I'll call you.
These planned objectives will easily consume our programming time during 2021. The good news is that once the product data files have been converted, and we have introduced the new CQS.EXE, and upgraded our internet engine to use the new data files, Compulife will be turning it's full attention to our web based, Compulife Basic software. The long term goal is to have a web based product that does everything our PC based software does.