|Welcome To Helix 5.3|
|Helix 5.3.2 Release||
Helix 5.3.2 is the second maintenance release of the third feature update release of the Helix 5 product family. This release adds further TCP/IP refinement and a few more small bug fixes to the new features and bug fixes that were incorporated into the code with in Helix 5.3 and 5.3.1.
The purpose of this release is to deliver features that are intended for Helix 6 in advance of that release. These features are ready to go, and we consider them significant enough that we want to put them into your hands now, as opposed to holding them back until Helix 6 ships.
|How to Upgrade||
Helix 5.3.2 is not a free update for all owners of previous Helix 5 products. Only existing Helix 5.3 and 5.3.1 serial number and key combinations will work with this release. Log in to your account or contact us for information on upgrading.
Customers who purchased Helix 5.2 or 5.2.1 are entitled to a free upgrade. If your last paid purchase was for a Helix 5.2 or 5.2.1 release, log in to your account, click on “Lookup Keys” button and on the “See Keys in Other Versions” button to retrieve your free Helix 5.3 keys.
RADE & Engine: Mac OS 8.6 or higher
Helix Server 5.x is Not macOS Compatible (For a macOS compatible Server, see the Helix 6 info pages.)
|Bug Fixes in Helix 5.3.2 (Release Date: April 22, 2005)|
|Keyword Field Memory Leak||
A memory leak caused Helix to lose memory every time a field with the keyword attribute checked was added or modified. The memory leak was equal to the size of the text being indexed. (E.g: A 600 byte text field would leak 600 bytes.) Although relatively small, these leaks add up over time. Increasing the Structure Cache could postpone the crash but eventually Helix would run out of memory and crash with a structure cache (7A0F) error.
|Document Updating Instability||
Using the "Update All" and "Find and Update All" commands resulted in a fixed (and possibly incorrect) value being stored internally. In itself, this would not cause a crash, but it could, on rare occasion, detrimentally affect to overall stability.
|Vertically Scrolling Styled Text Fields||
In some instances, a styled text field in a rectangle with vertical scrollling turned on could clip the last line of the text. A small change was made to avoid this. (Note that this fix may result in white space being displayed at the bottom of the rectangle when scrolled to the bottom.
|TCP/IP Code Improvements||
While working on Helix 6 Server, a bug in CodeWarrior's PowerPlant code was found that could cause a Helix Client to stall upon input of large (more than 16,000 character) text fields. The workaround for this bug has been added to the Helix 5.3.2 code as well.
|TCP/IP Remote Client Login Failure||
Changes made to Helix 5.3.1's TCP/IP code introduced a new bug: attempting to connect to an older Server with a 5.3.1 Client would fail, with the Client's 'double computer' cursor spinning endlessly. The same would happen if an older Client attempted to visit a 5.3.1 Server.
In this situation, the Helix Client should display a dialog telling the user that their copy of Helix Client is too new/old to visit this Server. Helix 5.3.2 restored the proper behavior.
However, this leaves Helix 5.3.1 as the "odd man out" regarding Client/Server connection negotiation. Forevermore, attempting to use Helix Client 5.3.1 to connect to any other version will fail to inform the user of the version mismatch. (Likewise, Helix Server 5.3.1 will never be able to inform any Helix Client -- older or newer -- of a version mismatch.)
It is recommended that all users upgrade to Helix 5.3.2, and remove all copies of 5.3.1 from their networks.
It was not possible to fix the situation for all cases, so we chose to isolate this bug to version 5.3.1 alone.
|Bug Fixes in Helix 5.3.1 (Released Jan 31, 2005)|
|Server Fails to Disconnect Crashed Client||
In some situations, when a Helix Client crashed, the Helix Server it was connected to did not realize the Client was no longer there and would continue to maintain the connection indefinitely. As a result, users whose icons were set to allow only 1 login would be locked out of the collection, as the Server falsely believed that user was still logged in. This bug could also result in the Server wrongly preventing users from logging in on the grounds that the concurrent Client license would be exceeded.
|Server Crash 7A06/0000D6D8||
This bug caused some Served collections to crash with a 7A06/0000D6D8 error when a form containing static popup menus with very short menu choices was requested.
|Meaningless Dialog on Server Crash||
Bad code introduced by a prior code team caused the dialog displayed during certain crashes to be nearly useless, displaying an error dialog with no message.
|Demo Server Expires Immediately||
This bug caused Helix Demo Server to announce that time was up immediately after launch.
|Client Info Export Missing TCP/IP Addresses||
The text file created by Client Info -> Export Data failed to include the TCP/IP address of each visitor.
|Internal Debugging Code Fixes||
Improvements were made to the internal code used when debugging TCP/IP issues.
|New Features in Helix 5.3|
|TCP/IP Code Rewritten||
Helix 5.3 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 5.3's TCP/IP implementation to be virtually transparent. The few areas which may require network administrator intervention are discussed below.
|Sequence Code Revised||
The behavior of nested sequences as it relates to the "Show Dialogs" option has always been poorly documented and confusing to many users. The Helix Reference, prior to this amendment mentions only one combination of nested options.
In addition, sequence related bugs in earlier versions of Helix resulted in other areas of the code that did not function according to documentation. Changes were made (in Helix 4.5.3) that resulted in problems for users who had built nested sequences and were accustomed to the previous behavior.
Furthermore, in an attempt to address another longstanding bug, the Helix 5.0 team went too far, not only fixing the bug, but also breaking an intended (but never documented) function of conditional sequences.
Changes in Helix 5.3 correct incorrect behaviors and implements the originally intended behavior, while providing a mechanism for avoiding problems for collections that rely on one of the prior behaviors.
We have also attempted to document the correct behavior of every conceivable combination of nested and conditional sequences. This chart shows the correct behavior for each condition, notes places where earlier versions did not function correctly, and documents the changes that have occurred in various versions.
|New Sequence Command: Keypress: Enter||
A new command has been added to the list of commands that can be used in a sequence. This new Keypress: Enter command simulates the pressing of the Enter key on the keyboard. Unlike the existing Enter commands (Enter, Enter Override, Static Enter, and Static Enter Override) -- which are more correctly interpreted as "Enter Record" commands -- this new command enters the code earlier on in the sequence of events, precisely at the point where a physical press of the Enter key does.
|View Type Information in Relation Window||
In relation windows using "View by Name" or "View by Kind" the contents column now uses a leading character to indicate the view type.
|New Apple Event: do menu||
The do menu Apple event has been added. This command, also available via AppleScript, is simply a 'menu driver' with no real intelligence of its own. With this command a user can write scripts to automate menu based tasks. An example of usage: a system administrator can set up Cron (or QuicKeys or PowerKey Pro) to launch a script in the middle of the night that selects menu items to run a series of reports (or sequences), in off-peak hours.
|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.
|Redesigned Posting Setup Window||
The posting setup window has been redesigned with a wider compound selection area and consistent visual elements.
|Numerous Minor Enhancements||
Many minor enhancements make Helix 5.3 easier to use and more trouble free:
|Server on macOS Warning||
Running Helix Server in Classic Mode under macOS increases the likelihood of collection damage. For this reason we suggest that Helix Server be run only on OS 9 native machines. Beginning in Helix 5.3, an alert will be displayed when Helix Server is launched as a reminder.
|Bug Fixes in Helix 5.3|
|Crash When Accessing A Cached Picture||
In previous versions of Helix a crash could occur when it attempted to render a picture from a document if the picture was already in the data cache. The crash was typically reported as a 5516 error.
|Long Term Stability
This is a significant fix for sites that wish to run a Helix database 24/7: A number of issues related to an internal table that is maintained by Helix applications have been addressed. This table can fill up over time and can result in performance degradation, crashes, and even (in rare cases) cause collection corruption.
|Sequence On Error/Open Why? Setting Ignored||
In previous versions of Helix, if an error occurred during the running of a sequence and a previous Why? error message had not been checked, Helix would force open the previous Why? message regardless of the designer's specification via the On Error/Open Why? settings. This could lead to a completely unrelated error message being presented, causing end user confusion.
|User Name Security Toggle Failed in Client/Server||
Switching the state of User Name Security in Helix Client/Server was previously impossible. Although the command could be placed on a user's menu and accessed via Helix Client, changing the state had no effect on Helix Server.
Helix Server is now correctly toggled, and the menu item on the Client that issued the command properly reflects this change.
|Command-Period Response Bug||
A longstanding bug that caused attempts to interrupt processing by pressing Command-Period to be delayed (or ignored altogether) is fixed. This bug was more apparent in Helix Client, but it existed in all products. Response time to a Command-period keypress should now be instantaneous.
|Apple Event Bug Fixes||
Fixes were made to the internal workings of Apple events:
|Client Cached Data Bug (D682) Revisited||
Data cached on Client was not always updated properly when a view was open and changes were made that affected the data displayed. Two previous attempts to address this bug were made, the first only partially fixing it, and the second completely fixing it but at a cost in performance. We have revisited this code and have correctly implemented a fix for this bug.
|Exporting Nested Subform Data Was Dropping the Last Field (B234)||
A bug, traced back as far as Helix Express 1.0, related to exporting data from nested subforms has been fixed. Specifically: if a subform contains a nested subform and there are fields in the outer subform that come after the subform the last field in the outer subform would not be exported. If there were multiple nested subforms, one field would be lost for each nested subform.
|macOS Classic Mode Compatibility Fixes||
Although Helix 5.3 is not macOS native, a number of fixes were added to enhance Classic Mode compatibility.
|Minor Bug Fixes||
These items address incorrect behavior during use:
These items address cases where Helix gave incorrect or incomplete feedback:
|Code Management Fixes||
These bugs would not directly result in a crash, but they introduced a level of instability that could lead to a crash (or abnormal behavior) later on.
|Miscellaneous General Fixes||
These items would never result in a crash, but they represented something that was either overlooked in a previous version or were standing in the way of our march to macOS compatibility.