Everything Else

Helix 6.1.10: Some Unfinished Business…

22 November 2011 —One annoying thing that almost always seems to happen as we are about to release a product is that a solution to an old problem suddenly manifests itself. Even if it is a fix of historic proportions, it remains annoying because everything else is ready to go and this new solution, whatever it is, is not. At that point, you have to make a decision, generally based on the answers to two questions:

  • How long will it take to implement and test this fix?
  • Should we make people wait for all the other good stuff that’s ready to go?

Back in August, we broke out of our focus on RADE for macOS long enough to release Helix 6.1.9, a release almost completely devoted to Client/Server issues. We released that update with the full expectation that it would mark the end of the 6.1x era.

Of course, if you have been following the story thus far, you know things are never quite that simple. As it turns out, there was some unfinished business. In particular, it seemed that one of the things we fixed in 6.1.9 — related to collections that would grow excessively large when external documents were being used — had the unpleasant side effect of making Helix Server less stable, and it wasn’t long before we were noticing that a lot of the crashes being reported were accompanied by error code 5517.

Eventually we found a solution for that problem, but in the meantime, our RADE engineering team — working on Helix 6.2 — had identified and fixed a number of User Mode bugs that also existed in Helix 6.1.9. None of them were real ‘show-stoppers,’ but a few in particular stuck in our collective craw, and so the decision was made to take the time to bring those fixes back to Helix 6.1.x.

So today we announce the release of Helix 6.1.10, a product with no new features, per se, but one that resolves the ‘5517’ Server crashes that started in Helix 6.1.9, and includes about a dozen more bug fixes for Client and Engine. We even threw something in for Classic RADE!

You can read about these fixes in the release notes or keep reading for a more informal discussion.

As this is a “.x” release, it is a free upgrade to any owner of a Helix 6.1.x product. We strongly urge all Client/Server users of 6.1.x products to upgrade to this version with all deliberate haste. If you are still hanging on with a 6.0 product, this version is solid and, of course, Intel native, so you can run it in mixed networks with Intel Macs and PowerPC Macs — even PowerPC Macs running OS 9. If you plan to stay with Helix, as we surely hope you do, your upgrade will help us all.

We have been using this version to run techdb for several weeks, and our intrepid beta testers have been using it in their businesses as well. The reports are overwhelmingly positive, and although it seems a few minor issues will always exist, those that we are aware of are so minor as to be inconsequential.

Server Stability

As we mentioned above, the biggest fix in 6.1.10 resolves the ‘5517’ crashes that started happening as a result of the previous ‘fix’ we released in 6.1.9: the one that resolved the excessive growth issue affecting collections that use document fields with external storage. What is particularly gratifying about this fix is that, when we finally got to the root of the problem, we discovered that this same problem could strike with any type of field. We couldn’t see it with the other field types because only documents could be large enough for it to be noticeable. And although we can’t make any promises, we are fairly confident that this bug was at the root of at least some of the ‘random’ Server crashes that had been reported to us in the past.

There’s also an attempt to address a really rare bug that causes the Helix Server to skip over the “Save Changes before Quitting” dialog sometimes. We emphasize the word rare here because only one user has ever reported this to us, and our fix is pretty much a shot in the dark. We’re not 100% confident that this fix will really help, but the code is cleaner now and ‘properly constructed,’ so it can’t hurt.

Ten fixes for Helix Client and Engine

In the days when common diseases took people from this Earth ‘in their prime,’ there wasn’t nearly as much attention paid to ‘lesser’ ailments, such as acid reflux. Keep that in mind when you read over this list. The bug fixes here aren’t major, like curing polio, but they do make life with Helix more enjoyable, particularly if you are one of the rare people these bugs have afflicted in the past.

With the ‘major diseases’ that afflicted Helix relegated to the history books, we were able to identify and address these issues:

  1. A new Show/Hide Toolbar command is added to the Edit menu.
  2. Implemented a workaround for a Snow Leopard- and Lion-only text alignment bug that affected popups that allows typing and have Word Wrap turned off.
  3. Improved the alignment and placement of combo box elements with respect to other rectangles.
  4. Forms without fields now properly display the pointing finger cursor when hovering over buttons instead of the cursor arrow.
  5. Avoided a crash that occurs when a view containing a subform that shares a query with other views is pasted into a collection but is never opened, and the query is subsequently changed.
  6. Form Queries and Power Queries should be less crash-prone in general.
  7. Dynamic Popups no longer crash when content is taken from a Document name that is undefined.
  8. Previewing a rotated image no longer crashes. (No image is shown.)
  9. Steps were taken to avoid a situation where sequences fail immediately after launch.
  10. The Use Font Reduction preference is now active. You can turn font reduction off entirely by setting HxUseFontReduction to false.

The most important of these ‘afflictions’ is the first one, which is seen only when running Helix in macOS 10.7 (Lion). Apple, in their infinite wisdom, decided to remove the little widget on the right edge of a window’s title bar, leaving Helix users with no way to close a toolbar once it was opened. That meant that once you opened a Quick Query, there was no obvious way to cancel it. (The non-obvious way was to make the query term invalid, then close and reopen the view.) This fix allows us to give our full endorsement to running Helix Client on Macs with macOS 10.7, but we still suggest that you wait before upgrading a Mac running Helix Server, as the current Helix Utility and Update Collection won’t run there, owing to Apple removing Rosetta from Lion.

You can also see that we’ve created a workaround for a problem that is only visible if you create a popup menu that allows typing, and then turn Word Wrap off for that field, tidied up the positioning of popups, and made a few places in the code more robust, and addressed a few other minor bugs.

The last of these fixes we want to mention is the last one on that list. One of the trouble spots in transitioning from Classic to macOS is that, for some designs, fonts become impossibly small to read. In the past we implemented some things to minimize that, but for some it remains an issue, so we’ve taken it one step further, allowing you to turn the font reduction code off altogether. The problem this causes is that, because Apple’s 3D effect ‘steals’ two pixels from each data rectangle, data that is not reduced in size may be clipped at the bottom. But if you prefer that to smaller type, you can now turn font reduction off altogether. This technote explains how.

Classic RADE is Not Forgotten

For the last two years or more, most Helix users have been happily working away in macOS native Helix, dipping back into Classic only to use Helix RADE to make design changes. During one such excursion, one of our users noticed something odd, that resulted from a specification change we made for RADE for macOS.

A very useful feature of Helix RADE is the ability to create buttons that perform different functions under different conditions. One part of that feature is the ability to designate an abacus that controls the name of the button, and whether it is enabled or not. The ability to control enabling goes one step further, offering the option of disabling (dimming) the button or making it invisible altogether.

Requiring abacus control over the button to give it the ability to be invisible seemed to us to be unnecessary, so we reworked the button code, giving it the ability to make any disabled button invisible. And so Helix gained the ability to make buttons disappear when they can’t be clicked, along with the standard ‘dimming’ option.

However, prior to the ability to control button attributes with AppleScript, you couldn’t put this capability to use, because there was no way to control the ‘disable/invisible’ setting unless you also used a control abacus. Or so we thought. What the aforementioned user discovered was that if you designated a control abacus for a button, changed the ‘when invalid…’ option to ‘make button invisible’ and then removed the control abacus, Classic RADE would hide the visibility setting, but did not reset it to the ‘disable’ option. Nobody ever noticed it before because without a control abacus, Classic Helix simply ignores the visibility setting and disables the button when it can not be clicked.

But now that Helix can make that button invisible, there needed to be a way to control that even when no control abacus was selected. And so the first ‘fix’ in Classic RADE 6.1.10 is that these controls are always shown in the button options dialog.

However, it must be noted that this change only affects the ability to control these settings. Classic Helix has never made buttons invisible without a control abacus, and it still doesn’t. The only change is to make Design Mode conform to the spec change that appears in macOS.

And as long as we were putting out a new Classic RADE, we decided to update the User Editor terminology to match the new macOS User Types: the terms User and Submenu have been replaced with Primary and Secondary user.

As quiet as mice…

As noted above, this version has been in testing — both here and at our beta sites — for several weeks already. Very early on we knew we wanted to release this to you, but with all that’s been happening around here, these fixes have settled in, as quiet as mice, and were it not for our search to determine whether we had overlooked any unfinished business, we might have forgotten about them, and you might have missed out on them entirely.

So here they are. Have at them. Put them to work in your Helix environment and hang on until next we meet with more news, this time about creatures perhaps not so quiet as these.

Find PreviousFind Next