In This Edition:
Helix RADE 6.2 Preliminary Release 7: Sound Restored Against the Grain
10 December 2011 —The good progress continues with the seventh Preliminary Release of Helix RADE 6.2 for macOS available today.
For those of you who have already climbed aboard the Europa Pioneer plan, your monthly $20* charge will appear on your credit card today. For those out there among “the rest of you,” remember that if you’re thinking of joining the Pioneer program this month, the initial payment is now $140. After all, you are getting “$140 worth of improvements” right from the start. All subsequent monthly payments will be $20.
As previously noted, when your credit card is successfully charged, we send you an email. In that email will be a link to the newest installer. Click that link to download the lastest update to your computer. (You can also get it by logging in to our web store and checking your current licenses.)
Once you have downloaded the installer disk image, the installation process is simple: If this is your first experience with Europa — or you like to manage your updates manually — just drag the new Helix RADE onto the Applications folder and let go. If you are updating from an earlier version of Europa, double click the Install Update icon and your Europa RADE will be seamlessly updated to the new version, even if you have a collection open! (You will be prompted to save changes before closing an open collection.)
This month’s release brings us almost to the end of the AppleScript project. There’s one small but powerful new feature to be completed, but it was just beyond our reach for this month. In addition, this release brings back something Helix users have sorely missed for nearly five years!
As happened a month ago, this edition of The Latest Word may veer off the purely precise course a bit, so to get the specifics on the various new features in both AppleScript and the graphical user interface, as well as the various fixes that can be found in this release, be sure to read the release notes. For now, let’s see where we stand with the release of PR7 and how best to benefit from the progress we have just made.
Most of the “seminal moments” in the recent history of Helix have, unfortunately, been the result of storms that have blown our way and forced us to shift our priorities. While we have succeeded in getting through nearly all of these blizzards, the one seminal moment that continues to elude our grasp has totally dominated our thinking for so long that it is difficult to imagine life without it, and yet that life will soon be upon us: Helix without Classic.
Once we had Helix Server, Client and Engine and our diagnostic duo, Helix Utility and Update Collection, all running in macOS, we had a way to keep the heart of Helix beating while we cleared the way to its soul: Design Mode.
There’s a scene in almost every crime drama in the movies and on television, when one spouse goes to visit another in jail. They sit down, face to face, with a steel reinforced window between them and pick up their telephones.
In the Helix version of this scene, the phones are out of order. All we can do is try to communicate with gestures and hope ‘the powers that be’ get the phones working again.
In the Helix version of this scene, the prison is Helix without graphic Design Mode editors. The phones represent a complete AppleScript implementation; the sign language the partial scripting we’ve had so far. From the beginning of this incarceration, we could see our imprisoned collections in macOS, but we could not change their designs, at least not until we threw in our lot with AppleScript.
At first — way, way back in the summer of this very year — AppleScript allowed us to change collections a little. It was a bit awkward at first, but it worked. A smile or wink through the reinforced glass and our collections were reassured of our devotion. But with each month that went by, we learned more new gestures and we found we could communicate better with every visit.
Prior to this month, the only part of the soul of Helix that we could not reach with AppleScript was the abacus. Like so many obstacles that have stood in our way, this one is now gone. There is now no facet of collection design that can not be examined and modified with scripting. As a famous man once (almost) said, “My fellow Helix users, our long nightmare is over.”
There’s a reason we left the abacus for last. Of all of the structures in a Helix collection, it is the most complex. As we started working through the scripting of the abacus, it became clear that, compared to the rest of the icons, working with an abacus in AppleScript would be a real head-scratcher. Knowing how difficult ‘scripting an abacus’ would be, we sought, and found, a solution.
In seven months, the AppleScript project has gone from a glimmer in the eye to a completely new way to look at Helix. Along the way, we were able to implement two key technologies: The first we called ‘AppleScript Nirvana’, which, to the uninitiated simply makes working in AppleScript much less tedious, much more direct.
The second is the powerful new feature we are introducing today: the Abacus Expression Language. Earlier, we mentioned that there was a ‘small but powerful’ piece still not in place. It is this piece that will tie the AppleScript project up neatly and completely.
From the Petroglyph to the Written Word
They say that a picture is worth a thousand words, but sometimes words are simply more efficient.
Did you ever find yourself sitting at a table with a napkin and a pen trying to work out how you might build an abacus? Maybe you draw the actual tiles, with arrows into their black holes. Perhaps you write it out in some linear fashion, some shorthand you evolved for that purpose. Maybe it looked like this:
IF ( [Last Name] starts with [N] ) THEN  ELSE 
That simple bit of text was enough for you to know what to do when you got back to your computer. But wouldn’t it be great if you could just feed that thought into Helix and have the abacus created for you?
That, in essence, is what the Abacus Expression Language — AEL for short — is.
AEL a textual language that you can use to read, write, and modify an abacus. AEL is pure text: a radical new method of looking at an abacus for certain. AEL shows you, for the first time ever, the contents of any abacus — including the underlying abacus that is built for a form query or power query — in plain text.
Now, before you begin wailing and gnashing your teeth, understand this: AEL is not a replacement for the Classic method of abacus construction. It is intended to be a supplemental method that can be used to create new abaci without the time-consuming process of manually dragging tiles, or of creating complex AppleScript code to navigate the tile structure.
For this month’s release, we are only releasing the ability to read an abacus in AEL. Next month we’ll add the ability to write AEL, and the AppleScript project will be officially complete. Oh sure, there will still be bugs to fix and rough edges to smooth out, but it won’t be consuming our attention as it did in 2011.
So now, and infinitely more so a month from now, the Helix version of the jail room scene is one in which full communication has been at last restored. The soul of Helix may still be incarcerated without its beloved Design Mode graphical user interface, but in the months to come, those prison walls will start crumbling. In the meantime, at least you can now maintain and modify your Helix collections without having to go into Classic to do it.
Since writing AEL means learning AEL, we wanted to provide you with a way to start learning now. To that end, we have two things for you. First, we have provided a technote that details the rules of AEL: how to interpret an AEL expression, and how to create an abacus using AEL.
The second tool we are providing is the Abacus Expression Language Exporter AppleScript. This script creates a text file containing every abacus (including including form query and power query statements) in Abacus Expression Language (AEL) format. You can download it from our Sample AppleScripts page and use it to see how your collection’s abaci appear in AEL. Besides the benefit of having printed documentation that details the abaci in your collections, it will help you learn how you can design an abacus via this text-based language. Of course, to actually create an abacus with AEL, you’ll need to wait until the ability to write AEL appears, hopefully next month.
For some people, this new language will become their default way of editing an abacus. As far back as we can remember, some users have complained about the tediousness of dragging tiles, filling holes and debugging problems when your only option was to view them on screen. (Remember, ever since the ImageWriter went the way of the dinosaur, you couldn’t even print an abacus out and study it on paper!)
For others, it will be just another part of Helix they never use, like Document Management or Client/Server. But it makes the Helix tools set more robust, and that is what is needed to attract new blood.
Against the Grain
And what about that other thing we say you have missed for so long?
In a word: printing. In a few more words, the ability for Helix to remember Page Setup information from session to session.
Because we needed to make sure Helix remained backwards compatible with the Classic Helix applications (including the Classic Client, which can connect to a macOS Server) we couldn’t change anything about the internal structure of a collection. That includes the internal ‘print record’ which is where Mac OS (both Classic and macOS) stores the information about page orientation, scale, etc.
During the transition phase — that is, for Helix 6.1 — we avoided this problem by having Helix manage the print record in memory. That allows you to print in macOS, but doesn’t change the collection, so printing in Classic remains viable.
The really interesting thing we learned in the process of solving this problem is that most applications don’t save this information. Change the orientation (or any other setting) of a document in Safari and print it. Now bring up the Print dialog again: all of your settings have reverted to their default values, and you have to set them up all over again. Unfortunately, this “normal” behavior is something that Helix users have had to suffer with since 2005.
Once again, Helix was always the iconoclast, running against the grain. The ability to recall the print record not just for the application, but for each template in each collection, put Helix ahead of anything the others were doing. We hated having to give it up during the transition, and vowed to bring it back as soon as we could.
Starting with Preliminary Release 7, this nightmare is over too. Printing once again behaves the way you most fondly remember, or as one national marketer is fond of saying, “set it and forget it.” Need it horizontal, reduced 25% and printing 5 copies? Set it and forget it.
For many users, the return of this capability will be reason enough to make the leap to macOS at last, but you can’t leap too high just yet, because there is no Helix Client/Server 6.2 quite yet. But that project is coming up fast on our agenda, not least because we know how many of you out there would love to have this capability back in Client/Server.
Please note that this does not mean that we’ve broken backwards compatibility. Even after printing in Helix RADE 6.2 you can still open your collections in Classic Helix. But if you still use your collections in Classic now and then, this can cause a problem. The problem in that case is that Classic won’t be able to deal with the macOS print record data, and if you try to print without ‘walking through’ the print dialog, Classic Helix will refuse to print. And since sequences can be set to print without showing a dialog, you could have sequences that refuse to print.
If you do print from within sequences and you still need to do that from both Classic and macOS, we’ve created a Find Printing Sequences script available on the Sample AppleScripts page. This script examines every sequence in a collection and reports those that contain any of the print commands (Page Setup, Print Form, Find and Print All) along with the ‘show dialogs’ state of each one. It even offers to switch sequences set to ‘Never’ to ‘Optionally’ show dialogs so you can access the dialogs by holding the Option key down during the sequence.
What’s in a name?
Finally, a piece of advice for the future: watch your naming schemes!
Helix has always allowed the collection developer complete freedom in icon naming, and while that remains true in Europa, there is one area where this could always cause trouble: having more than one icon of the same type in the same window (i.e., Collection or Relation) with the same name.
Nobody would have ever claimed it to be a very wise practice, and we doubt anybody does this intentionally. But we have no doubt (from examining our own collections!) that it has crept in to collections here and there.
Of course, existing Helix collections with duplicate named icons at the same level will continue to function correctly. But with the debut of the Abacus Expression Language, it becomes all the more important for Helix collection designers to check for — and to correct — this situation.
To assist with that, we’ve made our Search for Duplicate Names script available on the Sample AppleScripts page. This script searches a collection for icons with identical names, which might lead to ambiguity when addressed via scripting, and gives you a report of duplicate names, so you can quickly locate and correct them.
Although this month’s release doesn’t contains a huge quantity of advances, it certainly contains a great deal of quality. These items really are a ‘big deal’ and we hope you are as excited about them as we are.