Friday, February 29, 2008

Enhancements to the Comet file system

I am proposing two enhancements to the Comet file system that would be invisible and completely compatible with existing Comet application software.

Add an extension to Comet Data Files: As everyone reading this blog knows all too well, the data portion of Comet files don't have an extension. Unfortunately Windows DOES NOT LIKE filenames without extensions; does not like them one bit. I have found it impossible to send Comet files as attachments to emails. Somewhere, either at the sending side or the receiving side, a DAT extension gets stuck on the filename. So let Comet put the DAT extension on the data file name. The idea is not without precedent. Comet invisibly appends an OBJ extension to object files even though the system uniformly refers to "programs" by their root name and almost never refers to them by their real name. And if you try to CREATE a file with an OBJ extension, Comet will bark at you.

Append CR/LF to the end of every record: When a program CREATEs a file, Comet would invisibly add two bytes to the record length and when a record is written to that file Comet would invisibly append a Carriage Return and a Line Feed to the end of the record.

These two changes would not have any effect on existing programs. Existing CREATEs READs and WRITEs would not be affected.

Comet file names and record lengths would not change. BUT you could look at Comet data files using a text editor and the Google desktop search tool would be able to look at Comet data files. These seem like big benefits for small changes.

Monday, February 25, 2008


We steal words and use them for computer things that didn't exist when the words were first coined: word, string,branch. Focus is another of those words. A window has focus when the title bar is bright blue and the user HAS to answer the question in the box. Somethings I've seen call these modal windows but I'm not sure these two concepts - modal and focus - are the same.

Meanwhile I want a no-focus (blurry?) window and I don't think Comet has such an animal. It all has to do with what you mean by Help System. Most help systems are designed to answer the user's request for assistance. The user selects a HELP button or press a function key or does something else and a window opens with lots of text that can be searched to find answers.

I want something like tool tips. I want to put up an information window in Order Entry for example. The window would contain reminder information listing all the magic words that the operator can enter in the item number field. My information window would appear over the order header information, or over the blank space below line one. Once line one has been entered my program would close the window and it would not show again until the next order is created.

Oh yes, I'd like to be able to select the text font in this window so it looks very different from the 1980's Lucida Console. Italics anyone...

Thursday, February 21, 2008

Names names names

In the musical Cats T.S. Elliot tells us that cats have three names. That's interesting to us because every Comet program also has three names: the name of the object file, the name of the source file that created the object file and the menu name. None of these three independent names have to be related in any way. There is no requirement that the source file name connect to the name of the object. And the menu name? The menu name can be anything and occasionally is!

Most of us Comet programmers realize that to stay sane we have to name source and object files with related names. Most of us. Sadly not all of us. And related is in the mind of the namer.

In the days of the "Q" machine files did not have extensions or directories. So we followed the pattern established by the Solutions package and appended a prefix to the name of the object creating two files with related names. Want to write a Customer Maintenance program? Call the object CM and the source =CM. No prob.

Then things got exciting. We had more than one account and more than one CM program. How, how to keep track of two (or three or four) variants of CM? And so came the company code prefix convention and the extremely ugly =CO-CM format for source files. Yuck.

And here I am working on a system with three, count 'em three, source files that could be the parent of the Order Entry system: each has OE as it's root file name and each has a different and less than descriptive company prefix.

Take a minute, stare at the ceiling and think about which menu your new program will appear on. Then chose a name that fits the menu and describes the program. And name the source carefully. You'll do yourself and your successors a big favor.