|Welcome to Helix 6|
Helix 6 represents the first fruits of our work in updating our code for OS X. Helix Server, Helix Utility and Update Collection are currently OS X native. RADE, Client, Engine, & Developer Utility remain Classic (OS 9) only for the time being. (Helix Utility and Update Collection are also available in a Classic version.)
|About Helix 6.0.1||
Helix 6.0.1 is a maintenance release, primarily focused on addressing bugs discovered in Helix 6.0. There are also a couple of minor feature additions, which you can read about in the ‘What's New in Helix 6.0.1’ section below.
|How to Upgrade||
Helix 6.0 is not a free update for owners of previous Helix products. Only existing Helix 6.0 enablement keys work with this release. Log in to your account or contact us for information on upgrading.
Upgrade pricing is based on the last version of Helix you purchased. For example, you may currently be using 5.3.2, which you received as a free upgrade from Helix 5.2. But if your last purchase was for a Helix 5.2 or 5.2.1 release, your upgrade price is based on that. You can always log in to your account and click on “Lookup Keys” button to see which versions you have purchased. Free updates are found in the “Other Keys” page.
Helix Server & OS X native utilities: Mac OS X 10.3 or higher
|What You've Missed||
Helix 6 incorporates many features added as part of the interim Helix 5.x releases. If you are using an older version of Helix, Helix 6.0 also includes every new feature and bug fix added to Helix 5.3, Helix 5.2, and Helix 5.1
|What's New in Helix 6.0.1 (Released July 3, 2006)|
|About this Release||
Helix 6.0.1 is a free update for owners of Helix 6.0 products only. Existing Helix 6.0 enablement keys work with this release. If you are using an older version of Helix and wish to upgrade, log in to your account or contact us for information on upgrading.
|Classic Utilities Not Updated||
The Classic versions of Helix Utility, Update Collection, and Helix Developer Utility are unchanged. The version number on the Classic utilities in this installer remains at 6.0.
Version 6.0 is the last expected Classic version of these utilities. Helix Utility and Update Collection are already available in OS X native form. Helix Developer Utility for OS X will be available in our next release.
|RADE, Client, & Engine are Still Classic||
This release addresses minor bugs in existing products only. This release does not include OS X native versions of Helix RADE, Client, or Engine. For progress reports on those products, see our OS X Native Helix Progress Report page, which is updated as events warrant. We understand how critical it is that we get those products out as soon as possible, but there is still work to be done. See our The Latest Word posting of July 3, 2006 for a fuller explanation.
|What's New in Helix Server 6.0.1|
|Fix: Various Server Crashes||
Customers who uploaded Server crash logs per our request helped us identify the source of many Helix Server crashes. This release fixes crashes related to routines we have identified as follows: GetNext (aka Crash on Data Replace), DevoteTimeToRepeaters, ClearHepUp, MsgClientHepUp, NSLGetNextURL. Plus we fixed a case where a Client disconnect would randomly (but infrequently) crash the Server.
Note: if you experience crashes after installing Helix Server 6.0.1, please read this tech note on how to submit the crash logs and send in your crash log so we can study the problem. (We can't fix what we can't see.)
|Feature: Open Password Protected Collections via Apple Event||
The Open Apple event now allows an optional "password" parameter. This enables automated opening of collections with a collection password via AppleScript or other Apple event mechanisms.
This was implemented because of requests tied to Helix Maintenance Manager: after checking the collection, you can now reopen a password protected collection. Note that HMM has no capability to store the collection password in itself: you must write an application (e.g: AppleScript) to open a password protected collection.
In AppleScript the syntax is:
In order to automate the opening of a password protected collection, your password will, by necessity, be stored somewhere. Wherever it is stored, it is your responsibility to protect it.
The Open Apple event returns error code 21 when an incorrect password is supplied.
|Feature: Support for Dashboard Widget||
The Helix Status dashboard widget (coming soon) supports Helix Server 6.0.1 and later. Helix 6.0.1 contains the code additions necessary for it to work with the widget when it is released.
|What's New in Helix Client Classic 6.0.1|
|Fix: Obsolete Code Removed||
Some instances of obsolete code (e.g: calls to NSL) were removed, as they may have resulted in system instability. At the very least, they were taking up space needlessly.
|Feature: Disable Visit Option||
With the improved reliability and performance enhancements that come with working from a saved structure file, this has become the preferred method of accessing collections. Designers asked for a way to force users to "Open" saved structures, as some users habitually use "Visit" to connect to servers.
You can now (using your favorite resource editor) insert code into the Helix Client application that disables the Visit command, forcing users to rely on saved structure files.
To disable the Visit menu item, open a copy of Helix Client with a resource editor, create a new HVIS resource, and set the resource ID to 0 (zero). Distribute this copy of Helix Client to your users.
Upon launch, the modified Helix Client checks for the presence of the HVIS(0) resource. If it is found the Visit command is disabled and appears only as a dimmed menu item. (Pressing the option key overrides the check and enables Visit temporarily, covering situations where a Visit is required.)
We've found the OS X native open source resource editor Rezilla to be very nice.
The contents of the HVIS(0) resource are not checked, so it can contain anything (or nothing).
|What's New in Helix RADE (User Mode) & Engine Classic 6.0.1|
|Fix: Queried Subforms End Abruptly||
In Helix RADE and Engine a fix to one bug in the query optimizer introduced another. In this situation a nested subform with a query attached (a subform within a subform with a query specified in the lower half of the second column of Show Setup) could abruptly stop short of displaying records. When this bug struck, both the outer and inner subforms would stop.
This bug did not affect Helix Client/Server.
|What's New in Helix RADE Classic 6.0.1 (Design Mode)|
|Feature: Invisible View Visibility||
When working in Design Mode, you can now hold down the option key while opening an invisible view to make it temporarily visible.
Note: this enhancement was added specifically because of feedback given during the January, 2006 Helix training.
|What's New in Helix Utility OS X 6.0.1|
|Fix: Record Damage Causes Crash||
Helix Utility OS X would crash when attempting to read a record whose expected location starts beyond the end of the collection file (EOF Error). Helix Utlity OS X will now report this as a damaged record and offer to remove it, effecting the repair.
|Feature: Additional Damage Repairs||
With aforementioned crash that occurred when Helix Utlity encountered an EOF error fixed, it was discovered that this type of damage was not repairable by Helix Utility (it would report "Fatal Damage"). However, examination of the Helix Utility source code revealed that this type of damage could be fixed, but the feature was never completed. We have finished the code and added the "Advance Record Fixing" option to the Fix menu.
With this fix type turned on (it is on by default) Helix Utility OS X attempts to fix damage where the expected location of a record is beyond the logical end of the collection file.
|Feature: Repair Report Dialog Improved||
In Helix Utility 6.0, the dialogs that inform you about indexes that need to be rebuilt and records that need to be removed are limited to displaying data from 6 relations. Seeing more than the first 6 requires you to scroll through the list.
Helix Utility 6.0.1 expands the dialog box to show all of the data at once. Click here to see a full-size image of it.
|Tools Menu Rearranged||
The Data Damage Check and Data Damage Repair commands have switched places in the Tools menu. Data Damage Repair is the primary repair command now, and has rightly moved to the proper place on the menu.
Data Damage Check should only be used when diagnosing a problem that Data Damage Repair can not address.
|AutoFix Menu Renamed||
The AutoFix menu name is a bit misleading, since there is nothing "Auto" about it. Either each fix type found there is turned on, or it is turned off. Turning the items off did not add manual control of the fixes, it simply resulted in Fatal Damage being reported if that error type was discovered. Renaming them "Fixes" (not "AutoFixes") is a more accurate description of what the items in this menu do.
|Only Works With Helix Express 4.0 and Later||
Helix Utility OS X 6.0 could check and repair collections as old as Helix Express 1.0. Version 6.0.1 can only check and repair back to Helix Express 4.0.
|Super Secret Diagnostic Mode||
Helix Utility now includes a special diagnostic mode that can be used to pre-diagnose the extent of fatal damage. This is useful when trying to decide whether to schedule a collection repair or to revert to a backup copy of the collection.
Because of the dangerous nature of the diagnostic data, the method of invoking Diagnostic Mode is given on a ‘need to know’ basis. If you have a collection that reports Fatal Damage, contact QSA ToolWorks Technical Support to see if Diagnostic Mode is of use to you.
|What's New in Update Collection OS X 6.0.1|
|Fix: Works for Non-Admin Users||
Users who do not have admin priviledges can now use Update Collection's check Apple event.
|Super Secret Diagnostic Mode||
Update Collection now includes a special diagnostic mode that can be used to pre-diagnose the extent of structural damage. This is useful when trying to decide whether to schedule a collection repair or to revert to a backup copy of the collection.
Because of the dangerous nature of the diagnostic data, the method of invoking Diagnostic Mode is given on a ‘need to know’ basis. If you have a collection that fails to pass the Update Collection Structure Check, contact QSA ToolWorks Technical Support to see if Diagnostic Mode is of use to you.
|What's New in Helix 6.0 (058) - Partial List (Released December 19, 2005)|
|OS X native components||
Helix Server, Helix Utility and Update Collection are now OS X native. OS X 10.3 or later is required. This code was written with our cross-platform goals in mind, and is mostly ready for the coming Intel-based Macs.
|Collection file size extended||
Helix 5.3.2 and earlier limited the total file size of a collection to 2 GB. Helix 6.0 extends the maximum file size to 4 GB. Helix 6.0 is capable of supporting collections up to 64 GB, but the components required to create a file larger than 4 GB are not being released at this time as they have not been thoroughly tested. As we continue to transition to all OS X native code, we will turn our attention to testing and releasing that code.
|TCP/IP Code Rewritten||
Helix 6.0 features a robust implementation of TCP/IP that supports virtually all current network environments. DHCP, NAT, Firewalls, WiFi networks and more are now fully supported. Experienced Helix users will find setting up Helix 6.0's TCP/IP implementation to be virtually transparent.
Note: this feature actually debuted in Helix 5.3. Helix 5.3 was an advance release, intended to get the Helix 6.0 TCP/IP code into the hands of users sooner, instead of making everybody wait for Helix 6.0 to ship. With the exception of a handful of bug fixes, this TCP/IP is essentially identical to that found in Helix 5.3.2.
|Improved Client/Server Messaging Performance||
Helix's Client/Server message exchange architecture was created when the dominant networking protocol on Macintosh computers was AppleTalk, running on LocalTalk (230Kbps) wiring. Consequently, the architecture relied on numerous small messages, enabling Helix Server to thread messages to multiple Clients and to keep one Client's large request from dominating the network.
With the advent of Ethernet networks and TCP/IP networking, Helix Client/Server now uses larger messages, combining a number of the previous small messages into a single package, creating a more efficient exchange.
|Collection buffer replaces RAMJet||
In version 5.0, Helix Server and Helix Utility introduced RAMJet a feature that emulated a RAM disk and significantly improved collection performance. Helix 6.0’s OS X native applications feature an improved collection buffer that replaces the old RAMJet technology. The new collection buffer is significantly easier to set up and avoids the difficulties introduced by the separate structure and data caches found in the older versions.
Helix 6.0 also brings collection buffering to Update Collection OS X, reducing the time it takes to check a collection to seconds.
The progress thermometers in all OS X native Helix applications now display timers indicating the elapsed time and the estimated remaining time for the process.
The progress thermometers in Helix Utility OS X also indicate precisely what is being checked at any given time. This may prove useful for troubleshooting, and may also provide insight into potential for optimization.
|“Save & Log” is automatic||
It was often reported to us that the Save & Log feature in Helix Server could be accidentally turned off too easily. Helix 6 makes logfile management completely transparent, turning it on when a collection is opened and off when closed.
|Server & Client Information window enhancements||
The two information windows in Helix Server, “Server Information” and “Client Information” have been completely remodeled, providing more feedback in a less constrained format.
The biggest improvement is the addition of an Apple event (AE) Processes panel to the Client Information window. AE processes (accessed via third party tools) are typically opened, processed, and closed in a matter of seconds. This panel greatly aids programmers in troubleshooting their Apple event interaction with Helix.
Helix Server introduces animated icons in the splash screen that provide the user with operational information. These icons provide significantly better feedback than the old OS 9 cursor change mechanism. Observing these animations can help you identify precisely what is consuming your Server’s time and provide hints regarding areas that would benefit from optimization.
This Helix 6 FAQ page shows these icons in their animated state and describes the situations under which each one is seen.
The animation icons are also displayed in the Server Information window that is accessible via Helix Client.
|Helix Help and Custom Help use Apple’s built-in help system||
Helix Server uses Apple’s built-in help system to provide online help for its own help as well as Custom Help.
|Older technologies no longer supported||
Publish and Subscribe and AppleTalk, two technologies slated for obsolescence in OS X, have been dropped from Helix 6.
|Bug Fixes in Helix 6.0|
|Underlying Code Bugs||
Numerous bugs deep within the code were found and fixed. These primarily resulted in instability or other non-reproducible behaviors, so they are rather uninteresting to read about.
|Keyword sorting of extended ASCII characters||
Keyword indexes failed to properly index words that started with an ASCII character from the extended character set, causing queries to fail. For example, a search based on “[┼sberg] Word Starts With [┼]” would fail.
|Duplicate User Issues||
In Helix 5.3.2 and earlier when a new user is created via the “Edit Users” dialog, the new user name is stored as both the icon name and the custom name for the user. Beginning in Helix 6.0, using “Edit Users” to create a new user no longer puts the new name in the custom name field.
A similar problem is encountered when icons are duplicated in Design Mode: the custom name (as well as other “Icon Info” based data) is duplicated in this situation as well. Add to that the fact that users working in icon view are given no indication that there is a custom name assigned to an icon, and compound that with the realization that when User Name Security is turned on, entering a name in the Enter a User Name dialog connects to the first user found with that name and you can see how it was possible (in prior versions) to create user icons that appeared to be unusable. Beginning in Helix 6.0, when an icon is duplicated in Design Mode, the custom name is cleared in the duplicate.
In Helix 5.3.2 and earlier, using the “Get Info” command on a user icon introduced a subtle bug that resulted in the icon’s name being duplicated into the custom name slot every time the user icon was opened. The net effect of this bug was similar to the bug described above. This is also fixed.
|Fixed point field formatting||
In Helix 5.3.2 and earlier, the Number of digits display option for fixed point fields (and custom formatted rectangles containing fixed point fields) could be set to any value from -7 to +2. Setting the display to any value outside the documented range of 0–2 would produce unexpected results.
|Dynamic Popup construction||
In Helix 5.3.2 and earlier, when constructing a dynamic popup menu, abaci that include lookup tiles are excluded from the slot machine selection lists. This is fixed in Helix 6.0.
|Inert fields in lookup tiles||
The Helix Reference (section 7.7 in the pdf that ships with Helix 5.3.2) states: “… a Lookup tile cannot target (lookup) an inert field since there is no stored data to lookup. Therefore, an inert field can only appear in the third hole of a Lookup tile (or any four hole Sub tile).”
In Helix 5.3.2 and earlier, this was not the case, and inert fields could be specified. This is fixed in Helix 6.0.
A bug in Update Collection 5.x caused it to damage collections from Helix Express 3.5 or earlier when updating them. This has been fixed in Helix 6.0.
An ancient bug in Update Collection has been fixed: when multiple collections are checked at one time by dragging and dropping them onto Update Collection, if one of the collections being checked is damaged, the name of first collection checked is reported as damaged instead of the damaged one.