Everything Else
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.

Download the Update Notes for details on items new to Helix 5.3

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.

System Requirements

RADE & Engine: Mac OS 8.6 or higher
Client: Mac OS 9.1 or higher
Helix Server: Mac OS 9.1 - 9.2.2

Helix Server 5.x is Not macOS Compatible (For a macOS compatible Server, see the Helix 6 info pages.)
Because a typical Helix Server application puts a lot of stress on the system it is running on, it can cause the macOS <-> Classic mode interaction layer to fail under heavy use. The result of this failure is typically collection damage. For this reason, we do not under any circumstance recommend running Helix Server on a Macintosh running Classic mode in macOS.

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.

Compatibility Matrix:

ServerClientLocal Visit ResultRemote Visit Result
5.3.1Server not visibleClient hangs
5.3.0Server not visible"Server is newer" not visibleClient hangs
5.3.0Server not visibleClient hangs not visible"Server is older"
5.3.1Server not visibleClient hangs
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.

Read about the revised TCP/IP code on this FAQ page.

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

Post Window The posting setup window has been redesigned with a wider compound selection area and consistent visual elements.
Location Hints: The posting setup window now indicates the relation name for each of the selection lists. The source column does not show the relation name when constructing triplets (selection view), as that space is reserved for icon names when switching slot types. Switching to display view restores the source relation name to the header area.
Grayscale Shading: The posting setup window now uses shading for invalid selections (dark gray) and items of the other type (light gray) instead of the old pixel patterns.

Numerous Minor Enhancements

Why Dialog Many minor enhancements make Helix 5.3 easier to use and more trouble free:

  • Why? Dialog Updated: The Why? Dialog has been updated to appear more consistent with modern warning elements.
  • Document Updating Enhanced: Update, Update All, and Find and Update All document commands now check file name and path to determine whether to update internal information. Previously it only checked the information that Mac OS 9 uses to determine a change: File type, size, and modification date.
  • Updating Application Keys: You no longer have to reinstall (and reconfigure) your Helix applications to enter a new key.
  • Apple event Process Improvements: A number of improvements make working with Apple event processes easier.
  • Improved Sequence Termination Warning: Better explanation of the dangers of terminating a sequence.
  • Administration Windows Enhancements: More data displayed and all data is now exportable.
  • Improved Crash Recovery Alert: Compatibility with OkeyDokey Pro.
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
Performance Fix

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:

  • Apple event Post on Retrieve Used Wrong User Name
  • Terminated Processes Were Not Removed from Process Count
  • Apple event Document Retrieval Could Cause Crash
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.

  • Update Collection Works Better in macOS Classic Mode
  • False "Out of Space" Warning Fixed
  • Temporary (Recovery) File Placement Refined
Minor Bug Fixes

These items address incorrect behavior during use:

  • Reverting a New Template: When a template is opened for the first time after it was created or pasted into a relation, the Revert Icon command was disabled until it was closed and reopened.
  • Client Save Cursor Turned Off: The cursor changing mechanism was known to cause crashes in some situations.
  • Remote Server Locator No Longer Erases: A small typo no longer results in having to completely retype a URL.
  • AutoSave Idle Delay Failed to Reset: In Helix 5.0, the AutoSave timer was changed to use absolute time. A bug was introduced at that time that caused the AutoSave timer to fail to reset if the Idle Delay had expired (as evidenced by a flashing File menu) and the user saved manually. Now when the user manually saves the Autosave timer is properly set forward.
  • Sequence Pause Refined: A Pause command in a sequence now yields time to the OS based on the Sleep parameter (as defined in the HSLP resource) instead of a fixed value of 1/2 second.
  • Background Sequence Recovery Improved: A Helix Client that is put in the background while running a sequence recovers better.
  • Minor Posting Setup Window Fixes
Feedback Fixes

These items address cases where Helix gave incorrect or incomplete feedback:

  • Print Thermometer Synchronization: The advancement of the print progress thermometer was moved up in the code so it would more accurately reflect the current state of progress.
  • Correct Structure Cache Size Reported: Ever since RAMJet was implemented, the Server Info window opened on a Helix Client has incorrectly reported the amount of memory allocated to the structure cache. It now correctly reports this statistic.
  • Collection Info Window Reported Connected Clients: When a collection was open in Helix RADE or Engine, the Collection Info window previously showed a meaningless statistic for the number of Clients accessing the collection, labelled "Now Visiting" and always followed by "N/A". This line no longer appears when the collection is opened with RADE or Engine.
  • Correct Application Name Reported: There were places in the code where the application name was hard coded as Helix RADE? -- this could lead to confusion when trying to quit Server or Engine, as the "Save changes before quitting?" dialog always referred to RADE.
  • Correct Version Reporting: Helix splash screens now report the version number found in the Helix application's vers(2) resource. Patched programs will now display their correct version number.
  • Cache Error Reporting Refined: A specific caching error, (code 5516) was generated from 4 distinct locations in the Helix code. The 5516 error has now been split into 4 different error numbers (5516-5519) to help identify precisely which caching routines are being affected.
  • Utility Progress Thermometers Moved: If a crash occurred when running Helix Utility or Update Collection, the error reporting dialog would obscure the progress thermometer. The thermometers are now positioned in the far upper left corner, avoiding this minor inconvenience.
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.

  • A potential crash after clearing a Power Query is fixed.
  • An obscure issue that caused instability when Helix Client was Quit is fixed.
  • A bug related to memory management when opening a form with nested subforms is fixed.
  • A bug related to memory management when a user attached, then detached, a document in a field is fixed.
  • Explicitly named HFRT resources (seen when examining a collection with a resource editor) are redundant and put extra stress on the Mac OS, so they have been removed.
  • Server would not quit cleanly when a Mac OS shutdown or restart was invoked.
  • On some macOS systems, curly quotes in dialog boxes could cause Helix to display "parameter placeholders" instead of meaningful messages. (e.g: "Enter Password for user `^0'.") Curly quotes in dialogs have been changed to straight quotes.
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.

  • Miscellaneous dialog box tweaks.
  • Simple semantic fixes and generic code cleanup.
  • Code that checked for a Mac Plus keyboard was removed.
  • When template elements were colorized, the "resize subform" shading was overlooked.
  • Since version 4.5.3, all Helix applications were being compiled with the "Bundle Bit" turned off, causing Norton Utilities (and other similar utilities) to complain.