|Column Tag:||Kelly's Corner
QUED/M, Preditor, and Mactivator
By Dave Kelly, MacTutor Editorial Board
QUED/M vs. Preditor
Back in the good old days when the Macintosh was still a newborn 128K baby, a good editor was hard to come by. Actually, the good old days werent as good as it is today. The programmers text editor in those days was EDIT. Today, there are several editors that can be helpful to you as a software developer, especially if you dont like the editor that came with your language system.
Last month I mentioned a few words about Freditor, an editor for FORTRAN programmers. This month, lets check out two other text editors that are very similar. Comparing QUED/M (pronounced kwed-em) and Preditor has been a difficult task because each has its advantages. I hope some of my comments here will help to sort out the differences.
Some of you are probably asking What do I need another word processor for?. First, please understand that these text editors are not designed to support fancy formatting of text and graphics for desktop publishing. They were written to provide a fast and easy way to work with text. You can still transfer the text to another word processor for final formatting. The additional features that are offered provide advantages over word processors. Their strong point is the ability to use powerful Macros and regular expression matching features. These features allow you to store, manipulate and retrieve large amounts of information quickly without restrictions imposed by structured data base or other programs. QUED/M is the descendant of QUED. Macro capability and other improvements were added to QUED when QUED/M was released. Preditor is the new kid on the block. Both provide many of the same features with some differences that I will discuss here.
Ive created a comparison table to review some capabilities provided in QUED/M and Preditor. Id like to preface this chart with one observation. Both programs are flexible and macros can be created in one application to perform some tasks that would be considered built in features in the other application. I dont want to receive cards and letters telling me that by writing a macro, the features can be accomplished. Ive tried to include that in my chart, but in case I missed any sorry about that. Creation of the chart was not that easy anyway. Preditor has a very organized manual with the features organized into logical sections. The QUED/M manual puts more emphasis on macros and so the features are explained throughout the manual. The index didnt really help either. Section 11 covers all the menus in QUED/M so it was possible to round up most everything for the chart. Im sure glad that QUED/M is more intuitive than its manual.
The comparison chart shows that QUED/M and Preditor are very similar in many ways. Both applications have Open Window dialogs for opening, but only Preditor has filter controls for extensions on file names. Automatic file saving is an option for saving the file automatically when a set number of keystrokes have been pressed. Preditor also can do an autosave after a specified number of minutes.
Text editing features are basic to both programs, but there are some minor differences. Preditor provides rectangular editing. Rectangular editing allows you to select a rectangle of text to cut and paste. This is more useful if you are doing tables of data. Overstrike typing allows you to replace text instead of insert text when editing. In Preditor the editing modes are selected through a Format menu that displays a format dialog. This sets the format for the entire document.
Preditor has a command called Reformat text that will format the text between a left and right column settings. The formatting can be set to break at word boundaries or at the column settings. Reformatting text inserts a return character at the right boundary giving you the appearance of wrapped text. QUED/M on the other hand lets you set the line length and the paragraphs wrap automatically at the end of the line without modifying your text. There is currently a bug with the Undo of Preditors Reformat Text command. All editing operations (all operations that affect the text) in Preditor ARE undoable. This includes tab conversion, change all, remove all impossibles, etc. Currently there is a simple patch (a 2 byte change) to fix the problem (this same problem exists with undo of tab conversion operations as well), and the patch fixes both. I havent seen the patch yet, but I expect that it fixes the problem satisfactorily. The chart indicates that Reformat Text is undoable, but that was without the patch. In QUED/M it is very conspicuous that every action is undoable. In Preditor, most actions are undoable, but without the bug patches mentioned, QUED/Ms Undo/Redo works better.
Preditor has a complete and easy to use on line help system (in case you cant find your manual). A nice touch is that you can keep the help window open and switch to another window for editing. Some help systems Ive seen, you must quit a modal type dialog before the help system relinquishes control. Preditor also supports collapsing text and a function called Twiddle that swaps the character before the selected text with the character after the selected text. Im not sure what you would use this one for.
Preditor supports tags. Tags are an extremely powerful feature for people programming in C, Pascal and Fortran. It allows you to highlight any function or type name, and have Preditor immediately open the file that contains the definition and scroll the definition into view. The Tags feature also supports the standard MPW Commando interface. This brings us to another related area that is supported by Preditor. Preditor can read language modules, which are produced by the LDC (Language Definition Compiler) that comes with Preditor. Any language modules that are placed in the Preditor Folder will be available within Preditor. Preditor uses the language modules to obtain information about a particular programming language. This includes bracket and comment delimiters, reserved words, language syntax, file extensions, and more. Commonly used code can be set up as a template that may be pasted into your text. These language capabilities together with the tags capability make Preditor very attractive for programmers. Keep in mind that by using Macros in QUED/M could provide some features of the language modules, although these features would have to be developed before they could be used. Preditor has these features already.
Preditor also provides a glossary function for quick lookup/substitution of words or phrases. QUED/M will sort lines and compare differences between documents. Both programs have excellent search capability including searches for mismatched parenthesis or brackets. I like the way QUED/M displays the bracket pairs in the upper right corner of the document windows title bar. This way gives you a visual feedback of the number of open brackets. Preditor also does what they call an incremental search. Incremental searching allows Preditor to search continuously as you enter text in the Find What text box. For example, if you type in the word Hello; after you type the H Preditor will find the first H, then after you type the e, Preditor will find the first occurrence of He, and so on.
With all I havent said much about macro capability. In general, any feature that can be done manually, also can be done in a macro. QUED/M is very strong in the macro area, while Preditor is strong in its language support. The result of this is that both are good text editors and will do the job, but each has its own advantages.
QUED/M is available from:
Paragon Concepts, Inc.
990 Highland Drive, Suite 312
Solana Beach, CA. 92075
(619) 481-1477 or
(800) 922-2993 outside California
Preditor is available from:
P. O. Box 219093
Portland, OR. 97225
(503) 297-6175 or
Requires System 3.2 or later and 512K RAM minimum.
I hate copy protection. This subject has been beat to death so many times that it is pathetic. But lately, Ive been seeing some ads on hardware copy protection schemes that turns my stomach to think about it. One ad shows a device connected to the ADB port. I dont have any information about the ADB device so I cant say much about it. Another scheme has shown up from Software Security, Inc. called The Mactivator that plugs into the SCSI port. I recently received a demo version of the Mactivator.
Before continuing I must say, copying software illegally is wrong, theres no question about that. But setting all that aside, lets take a look at The Mactivator.
The Mactivator plugs into the SCSI port of any Macintosh. It does not require power and doesnt use up a SCSI address. Several Mactivator units may be plugged in at once (they say as many as 10 may be daisy chained). What? Doesnt this interfere with normal SCSI operations? Before answering this question lets take a look at how it works.
The key to the Mactivator is a custom ASIC chip. A series of bytes is sent to the chip via the SCSI port. These byte increment and/or decrement a set of counters on the device. When the counters reach a factory-programmed Product ID value, the Mactivator sends out an acknowledge response which can be tested for. If no signal is received, it is assumed that the device is not present and the application program can take necessary action (like erasing your hard disk just kidding).
The counters are divided into two sections. The Product ID side is programmed at your factory with your unique code. There are over 250 thousand possible codes. The other selection is the Custom ID side, that contains selectors or filters. These values can be programmed by Software Security, Inc. to your specifications, or you can use an optional field programming unit to program the filters yourself. Both sides of the device may be accessed incrementally, decrementally, and in an AND/OR mode. By combining these modes and other features, the device can be set up to respond differently to every interrogation.
You dont have to perform the entire interrogation at one time. Since the device has so many ways to be programmed it is nearly impossible to duplicate the device. The device can be used for serialization, multiple modules, and multiple package protection.
Does the device interfere with normal SCSI operations? Answer: It shouldnt. The device is counting on the fact that it is unlikely that any normal SCSI operations would send the apparently random series of bytes the Mactivator is programmed to respond to. This scares me. When I tried out the demo that Software Security sent me, my 80 Meg. CMS internal hard hung up when I used the demo software. A telephone call soon told me that a fix was on its way to me since there was a known problem when CMS drives were used. As a developer can I afford to risk the reputation of my software on a device like this? What if there is some other peripheral that comes along in the future which isnt compatible? Hopefully the response will be as quick when that happens as it was for the CMS fix.
OK, I admit that if copy protection must be used that a device like this one would be a good way to do it. There are a few side effects which come with any device like this. One of the biggest legitimate complaints about software copy protection is the way that the protection always seems to get in the way of everyday operation of the software. The need for a master (or key) disk and not being able to copy the application for backups or convenience are two of many complaints. If your software will always be run only at one location then a device like Mactivator would like not give the user any grief.
A problem that I have faced since I work for a big company is that sometimes I do work at home. I have favorite software which I have purchased, but the company has not. I still have a legal right to use my copy on any one computer at a time, but it isnt the same computer each time. I often use my legal copy while at work. A device like Mactivator would be an added burden that I wouldnt want.
The Mactivator could be moved from one machine to another, but sometimes this is awkward depending on what other equipment is also installed. And the Mactivator uses the system SCSI connector which means that it must connect to the CPU although a change in connector would make it possible to mate to other SCSI peripherals. This means that SCSI peripherals connected to a CPU must be disconnected to allow the Mactivator to be installed.
I have mixed feelings about this kind of device. If you must have copy protection then I definitely recommend using something like this, but I still feel that copy protection should be avoided wherever and whenever possible.
The Mactivator is available from:
Software Security, Inc.
1011 High Ridge Road
Stamford, CT. 06905
In CT: 203-329-8870