In This Edition:
A fresh start and a look back
6 January 2014 — To our friends in the Helix universe, Happy New Year! Welcome to January, the month which derives its name from Janus, Roman god of thresholds who presides over doors and beginnings.
Janus is most often depicted as someone who might, to the casual observer, appear to have two heads, but in fact, Janus is looking back at the same time he is looking ahead.
As are we. We’ve always been somewhat sentimental about New Year's Eve, having delivered various goodies on that night over the years. Two years ago, in the first year of the Europa expedition, we missed it by eight days. And while we tried hard, we missed it again, this time by six days. Today, finally, we’re here to talk about progress that looks both at where we’re going and where we’ve been.
How do you best manage multiple variables?
Two and a half months ago, a brand new Intel-only Helix (6.2.1) and a brand new macOS (10.9, aka: Mavericks) appeared within the span of about two weeks of each other. While Helix RADE and Helix Engine worked in Mavericks, the Client and Server we released on November 6th did not.
Compounding the problem, we offered no Helix Client 6.2.1 for PowerPC Macs, leaving some of our customers caught in a bind: their PowerPC Macs had them cut off from upgrading to Helix 6.2 from one direction (the past), and they couldn’t buy new Macs because they would come with Mavericks installed, cutting them off in the other direction (the future).
When Apple bought NeXT and started using NeXTStep as the basis for macOS, ‘Sockets’ — system code that provides access to the network — came along for the ride. Along the way, Sockets continued to mature, yet Open Transport (the older system code for networking) remained a supported networking method — until the release of Mavericks. Then it was gone, and we found ourselves facing another infrastructure job that had to be done ‘as quickly as possible.’
These types of infrastructure projects have occasionally been stupefyingly long and boring affairs with almost nothing visible to the end-user when complete. And each one comes with a sense of foreboding, because of how difficult it is to accurately predict how long they will take.
If you are in a similar bind with your Helix plans, happily for you, what we expected to be a three-month project was started, completed and debugged in just under 10 weeks. And that brings us, in a roundabout way, to today’s announcements…
Helix 6.2.2 Ships Today
Helix 6.2.2 is available today. With this release, the entire Helix product family is now Mavericks-compatible, including the Server. Also included in today’s release is a Universal Client that runs on both Intel and PowerPC Macs. So, if you were ‘trapped’ in Helix 6.1 because of the cost of upgrading your PowerPC Macs, it’s no longer an issue. And if you want to upgrade any or all of your machines to Mavericks, go right ahead. Helix Client now runs on any Mac with macOS 10.4.11 or later, and the rest of the family now runs on any Intel Mac with macOS 10.5 or later.
And there’s much more to this release than simply ‘more compatibility.’ For instance, all Helix applications are now ‘code signed,’ which means you won’t have to bypass Apple’s Gatekeeper function to install the latest update. We’ve also registered Helix Server with Apple’s built-in firewall, so you no longer have to answer a dialog giving Helix permission to receive network connections. And as long as we’re talking about networking, Helix Server 6.2.2 supports connections from every active network interface on the Mac that is serving it, meaning Clients can now directly connect from any network, even a VPN.
There are also about 50 bug fixes and general improvements, some specifically for Helix Server, some for Helix RADE Design Mode, and others that enhance the ‘User Mode’ experience in Helix Client, RADE, or Engine. All Helix products now run for an hour in Demo License mode. And we even squeezed a couple of small improvements into Helix Utility.
As always, the complete details about what is new and improved are found in the Helix 6.2.2 Release Notes, and we encourage you to read through them in order to fully understand what is new in Helix 6.2.2.
Helix 6.2.2 — Intel products that run on everything from macOS 10.5 (Leopard) to 10.9 (Mavericks). A PowerPC Client that runs in macOS 10.4 (Tiger) and 10.5 (Leopard). Regardless of your hardware and macOS version, we have you covered.
The Significance of Sockets
As we noted in November, the prospect of having to rewrite our networking layer was a scary proposition — one we would have preferred to postpone until the next major upgrade, when we would have had more time to test it — but our hand was forced by the release of Mavericks and its elimination of Open Transport.
Knowing we’d need a way to turn this around quickly, we brought most of our internal debugging tools up ‘to the surface’ making it possible for us to gather much better troubleshooting data without having to create special builds for customers to install.
Now anybody can gather debugging information for us simply by setting a preference. And we’ve added more debugging tools. The User Access Log, which debuted in Helix 6.2.1, has been expanded in 6.2.2 to capture much more user activity than the ‘time logged in/time logged out’ data. It can now, if you wish, log record additions, updates and deletions, posting operations and record locking. The log generated by Helix RADE and Engine can also be set to record sequence executions.
With Helix 6.2.2, we can identify and fix problems faster than ever before. But even more than this, thanks to Sockets, Helix is now better suited to handle data encryption and provide enhanced security features. And in addition to enhanced debugging capabilities, these 6.2.2 expansion of the User Access Log can also be used to provide a user-configurable audit trail of network activity.
Thus, not only was the conversion fast and furious, but unlike nearly all the infrastructure projects that preceded it, bringing Sockets to Helix, ending Helix’s long relationship with Open Transport, brought visible results that go beyond merely being able to run in Mavericks. Being Mavericks-compatible, for Helix Client/Server, means running in Sockets, and that opens a bright future for Helix.
It would be remiss of us not to let you all know why we missed our New Year’s Eve date with destiny. That story begins with what happened when we had our big public test two weeks ago and has to do with a very well-known scientific conundrum.
The Heisenberg principle states (in simple terms) that the act of observing a system inevitably alters its state.
A Heisenbug, on the other hand, is a tongue-in-cheek way of describing a software problem that alters its behavior when one attempts to analyze it.
On December 20th, we put a twist on that principle in a totally unexpected, but ultimately predictable way. We had been so giddy with excitement over how well our Client was performing that we decided to schedule a public test on short notice. When you have tested and tested and tested some more, you develop an expectation of how something will behave. It can behave differently; one naturally hopes for better than expected, but when it behaves worse — and during the actual event, the performance of Helix was excruciatingly slow — it can leave you feeling a bit despondent.
As noted above, we had expanded the number of ‘live debugging’ tools in Helix 6.2.2, adding many ways to capture debugging data. Of course, for our big public test, we turned on all of the debugging tools, thinking we could analyze any issues seen along the way.
What we failed to anticipate was how the act of collecting all this information would impact Server performance. In retrospect it seems obvious that processing more than a gigabyte of debugging data per hour would have a crippling effect on performance. Subsequent tests showed that turning off the debugging tool that records every piece of network interaction immediately returned performance to the level we expected.
As slow and painful as the public test was, the really encouraging thing was that there were no crashes. Helix Server kept running, and we didn’t hear of any Client crashes either. So, after you filter out the one source of concern, we end up with a highly successful test, which subsequent beta testing has confirmed.
How to get going in 6.2.2
If you have already purchased or upgraded to Helix 6.2 or 6.2.1, Helix 6.2.2 is a free update. Get it from our downloads page or, if you are already running Helix 6.2.1, by choosing Check for Updates… from the application menu. Also, an important note for Helix Client users: you must disconnect from your Server before updating, and this update is not compatible with Helix Server 6.2.1, so be sure to check with your network administrator before updating!
If you haven’t upgraded to Helix 6.2 yet: this release is what you have been waiting for all this time. If you are one of those folks who thought Helix was long-dead and have been hanging back in an old version, we want you back — like the customer who called yesterday; who was still running Helix 4.5 and just discovered that Helix is alive and well. We have extended our upgrade pricing all the way back to the earliest versions, and our web store has customer number information all the way back to the earliest days.
If it’s been so long you don’t remember your customer number, contact Gil and he will help you out. If our web store shows no registered product under your account, he’ll see that you get what you need at the best price possible. Depending upon how long ago you last upgraded, paying an upgrade price can mean a small or a significant savings, but it is always less than having to buy it new all over again.
What comes next
Today we are at the place where we can say that Helix has finally caught up from the years of neglect and mismanagement that plagued it around the turn of the century.
Will Apple throw us another curveball and force us to scramble once again? Who knows? But for now we are ‘current,’ and beyond the horizon looms the future that looks ahead and back, to the resumption of progress, the return of Helix education and developer programs, and reaching out to a new generation of users.
It means we can now turn our attention to more than mere survival. And so, at long last, it is time to play a round of the new Feature Game together. Coming next in a Latest Word near you.