Comet Meeting -- August 10, 2009
Comet Meeting 2009 – Topics
All enhancements to the language will go in to Comet32 only
- Steve and Carl requested indication of source dir as well as source file when inquiring on properties of an object. The Comet32 compiler does put the source dir name in the object file. Utilities need to be updated to show that info.
- Steve requested more intelligent editmasks like Excel styles (see note about editmasks in the Reporter notes below).
- Steve requested a % synonym for the MOD operator.
- Barb requested the ability to read/write the Windows registry from an IB program.
- There was a request by many to replace the ODBC driver with a general purpose SQL driver that would do SELECTs and UPDATEs on any SQL platform residing on the Server.
Discussed adding checkpoint / transaction logging. This would allow automatic snapshot of the file system at a moment in time followed by transaction logging of all file server requests which change any data. Restore could be done to any moment in time by restoring the checkpoint and then replaying as many transactions as desired. Checkpoint snapshot would have to be taken when all files were closed (or at least locked). Transactions could be sent to a secondary server. Administrator should be able to set parameters that dictate either # of transactions or amount of elapsed time before committing transactions to the backup server. These transaction files could also be useful to help determine when and by whom particular transactions were made.
- Request was made to be able to use Reporter syntax in IB programs to eliminate need to define FORMATs. File and field names used would be the #CFILES names.
- DICTIONARY RPT (would specify location of #CFILES)
- INPUT customer (would define the primary file namespace)
- Field name references could be prefixed by the file name (ie customer.custname) to eliminate ambiguity if the same fieldname is used in more than one file. It was also pointed out that being able to use Reporter file names could be an adequate substitute for implementation of long filenames in Comet.
- More advanced concepts discussed...
- If data validation criteria could be defined in #CFILES these rules could be applied when values were applied to fields. For example: amount > 0.
- Same for formatting rules. For example fields could be defined as upper-case. Data would be converted automatically.
- Action triggers were also discussed. One or more processes could be defined to happen when some other process happens. For example, when a particular field is updated also update other fields or when a record is deleted from this file also delete records from other files.
- Request was made for SQL driver tying Reporter data dictionary to file system.
- Jon requested "compile" tool access from UE to run a report when editing .ibr file.
- Steve requested editmasks on the total lines. Jon says he solves this problem with an Excel macro for formatting Reporter data. You can see an example of this on the forum at
- Request was made for an option on the USING statement to opt for outer join. Currently only inner joins are done. Outer join is simulated by forcing the last USING to succeed (ie file link back to itself).
- Jon requested creating all Reporter temporary files in the TMP directory instead of in the directory where the .ibr resides.
- Carl requested a preprocessor that could prompt the user to supply report specific data such as date ranges, product codes, etc to be used in TITLE and SELECT statements. Optionally the data could come from the result of an entered program. Steve developed such a tool and has used it for years. You can see it on the forum Code Library at
- Comet32 is officially in Beta test phase, the expectation is that it will become the official Comet flavor with Comet Version 2010.
- Remote printer driver for CometAnywhere has not been done yet.
- TCP driver implementation/future of how people would like it to work?
- Xap – 2 flavors -- Jon requested increasing the XAP buffer from 1024 to 8000.
- Jim requested that CosW come up in Windows colors by default.
This is a new product which is available for sale now. It provides automatic backup and archiving of customer's data to an SSI server. The data center has redundant power and cooling for safe and efficient operation. A 750KVa diesel generator will keep the facility powered indefinitely in the event that utility power fails. Biometric access controls, key card access and video surveillance ensure a secure, monitored environment. There is a one-time setup fee, then monthly fee after that which includes all inherent server upkeep and bandwidth costs up to 8GB of data transferred. It was suggested that customers should check with their insurance company to see if they offer a discount on the premium if off-site storage is implemented. This could offset the cost of the service. In the event of a disaster the customer has the choice of having the data returned to them or logging in to their account on the CometConnect system and running their business via CometAnywhere until they have restored their hardware.
Doc manager -- The Perfect replacement for QSPOOL.
- Jon requested export capability so documents could be emailed or copied/moved to any folder on the network. Drag and drop functionality was also discussed but currently the IB API does not allow for this. Problem was reported that DocMgr gets errors if the actual document is deleted from outside DocMgr.
- Frank said that he has about a terabyte of images scanned in and would like to import them into DocManager.There is an import capability, but it deals with only 1 doc at a time. That will not work in this case. We should have a waqy to specify the program name and user once for a whole batch of documents.
New Ultra Edit Install
Jim would like to replace the current install shield method with a self-extracting zip file that would take care of installing all files, registry entries, and toolbar additions.
- Jim expressed concern that because the file server is essentially locked by one user at a time that its performance could be improved by making it multi-threaded. The general consensus was that improving file server performance was not a high priority.
- Long file names -- It was decided that this did not matter as much if the reporter syntax could be included in IB programs.
- Discussed adding a filename extension to Comet data files. Currently sequential files and the data portion of keyed files do not have a file extension. We finally decided this would have to be an optional feature. The file server could automatically rename the file the first time it was opened and retain the original create/update dates. But there would be a problem for any program which refers to the file by its full pathname (ie CopyFile, DOS calls, etc). Also did not decide on an extension. All our first choices were already in use by many vendors.
- Steve requested ability to add subkeys to existing extended keyed files which already contain data. Currently subkeys can only be added to empty files.
NAS box server
Jim said we were considering supporting NAS boxes. The file server could then serve files stored on them. Jon pointed out that he thought Windows Server 2008 took care of this on the network automatically. Support for a "foreign Folder" would be specified with the following syntax in the comet.ini file:
[DIRECTORIES] 00 = c ,\\server\\NasBox\share\';
New Encrypt/Decrypt functions
There was discussion about updating the encrypt/decrypt statements to make them more robust.
We Discussed the possibility of allowing orders for SSI products to be entered online. It was agreed that all that was needed is a more convenient way to pay. Jim will look in to payment by direct deposit to SSI account to eliminate need to mail a check. For next year's subscriptions we agreed to prepare and email a spreadsheet to each dealer with subscription renewal pricing for each customer. Dealer could then indicate on spreadsheet which will be renewing and email spreadsheet back.
Multitasking Server UIs
The User Interface programs for the Comet servers need to be able to support multiple connections so users on terminal services can see the tray icon.
A new TIMER statement was discussed. This would allow the programmer to set timers that would trigger events when they expired. An event handler could then be written to perform some task such as prompting a user to see if they're still there or even terminating the session to release their resources. Suggested syntax: TIMER TimerId Milliseconds
Discussed rewriting this as a dialog-based app to make it more up-to-date and easier to use. Also perhaps change some of the language as some people are confused by the concept of the "outer door".
- There was almost unanimous agreement that the Comet Forum was too difficult to search. No real solution was proposed.
The vote for time and location of the next Comet meeting was for October 2010 in or around New York.
I did the research -- Rosh Hashanah is in September 2010. In case anyone cared!!
- SYSGEN -- Neil requested the path to the .ini file be stored in the .cfg.
- Some old bugs...
- CometExplorer has some problems sorting its columns.
- CosC is leaving the file open if client goes away in the middle of a CopyFile.
Please add any other items you wish.