|macOS Native Helix & Xcode Transition Progress Report, Part Two: December 2010 – April 2008|
|October 20, 2010||
Everybody exhale. Apple's announcement of macOS 10.7 (cat name: Lion) brought no stunning revelations (actually, not much technical information at all). The most important things is that it is scheduled to ship Summer, 2011.
|October 14, 2010||
Yes, we're being intentionally quiet about RADE. Waiting for an official announcement.
Meantime, we hold our breath, wondering what Apple will announce on Oct 20.
|September 17, 2010|
|August 9, 2010|
|July 30, 2010||
Numerous reports of Server crashing with 7602 errors. Pinned it down to entry views that were saved with the Quick Query panel open. Working on a fix.
Also getting reports of Client crashes in sequences that enter a record on a view with dynamic popups and then close the view. When the Server returns the updated popup data for the (now) closed view, the Client doesn't know what to do with it, and crashes.
|July 27, 2010|
|June 8, 2010||
Whew. Steve Jobs' 2010 WWDC keynote address has passed and no mention of "macOS 10.7" — maybe we won't have to keep playing catch up forever.
|May 20, 2010||
Now we're “99%” done. Log in to techdb with our new Client and see for yourself.
|May 17, 2010||
According to one of our favorite engineering adages, “The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.”
With that in mind, we're “98%” done with the Helix 6.1.6 development cycle.
|March 13, 2010||
The beta Client that was put out on March 4 has a nasty habit of failing to store data unless you explicitly tab out of each field. An updated Client that fixes that bug (and more) has been released.
Also note that the Feb 1 entry [now corrected] neglected to mention a third performance modification: Asynchronous lists are working once again.
|March 4, 2010||
A new beta was put into use for techdb today, showing some of the performance improvements we have in the works. Access to techdb requires an updated Client. Get it here.
|February 1, 2010||
In new code delivered this morning, the performance improvement we were hoping for just emerged. Big time.
One 'torture test' list that takes 5 min, 50 sec in Helix 6.1.5 takes 6 seconds with our new code. A more typical list was reduced from 35 seconds to 5 seconds.
The new code contains three performance modifications:
A nice bonus is that while doing this work, it was discovered where the inefficiencies in handling conditional styles — particularly in Client/Server — were. Lists should no longer take a performance hit when conditional styles are used.
|January 29, 2010||
macOS RADE work has reached a positive milestone, so we have paused that work for a bit to put all attention on the performance of Helix Engine/Client. That work is starting to emerge from the lab and we started internal testing today, with positive results. We're probably just a week or two away from going beta.
|November 30, 2009|
|November 24, 2009||
A breakthrough related to macOS Client/Engine stability! We now hope have the next Preview Release out by the end of the month.
|November 1, 2009||
RADE progress continues, as does work on macOS Client/Engine stability and performance. Not much detail to talk about.
|August 31, 2009|
|August 28, 2009||
macOS 10.6 (aka: Snow Leopard) ships today. Unfortunately, the time table for Helix 6.1.4 was such that we froze our code early this month, before the Snow Leopard code was finalized. Consequently, we do not yet know whether Helix 6.1.4 is fully compatible with Snow Leopard. We hope to test next week. Until then, proceed with caution.
Work on RADE progresses.
|July 2, 2009||
Along with today's code changes/bug fixes for beta testing came this note. Be sure to read the last sentence.
"This is the final stretch for 6.1.4. All modifications are committed. Now we just have to test it and fix the bugs in the new code. Work on RADE has resumed."
|May 30, 2009||
Asking a software engineer to fix a bug without step-by-step instructions (and a simple sample collection) is roughly equivalent to asking a guy who manufactures copper pipe to "fix the leak in my plumbing." Without you to guide him explicitly to the spot of the problem, he can't reasonably be expected to find it. And if you say "it's under the sink in the bathroom," well, it isn't leaking under the sink in his bathroom, so unless you let him into your house (give him access to your collection) there's not much he can do for you.
So if you are preparing to report a bug, please review our Bug Reporting Instructions page.
|May 19, 2009||
Work continues: The first draft of the macOS Power Query began testing yesterday, and code to complete the Document Management features arrived today. These are the last two ‘big ticket items’ before we can resume work on macOS RADE.
A ‘passing of the torch’ moment happened while updating some code for macOS. One of our engineers writes,
"I removed the routine that has been drawing the thick ring around the default button in every Helix dialog since 1984. Thanks to John Norstad for a simple routine that worked well for decades."
|May 4, 2009|
|April 27, 2009||
We are getting very close to shipping Helix 6.1.3. All of the big issues are resolved and although there are a few minor bugs left on our list, we plan on shipping soon. We’ll have a lengthy list of "known problems" — this is the most extensively tested and cataloged release we have ever done — and we hope to be able to follow up with another update in a couple months.
|April 2, 2009||
As Bullwinkle J. Moose would say: "This time for sure!" All of the aforementioned problems have been fixed and, although there are a few natty issues left to deal with, none are so large that we expect this beta cycle to last much longer. The latest changes required another update to the Client/Server protocol, so if you want to connect to our HelixChat/techdb server, you need the new Client. Download it from the Preview Release Beta page.
|March 20, 2009||
We fixed the problem with dynamic popups (see March 4, 2009) and then discovered that the fix broke when used under Classic. Fortunately, that was a simple case of the engineer forgetting to add one line to the Classic code. That’s done, and it really, really looks like this might be the final beta before we ship 6.1.3.
|March 4, 2009||
It’s like playing "Whac-A-Mole" — you hammer one bug and another pops up to take its place. The fix for subforms (Feb 5) broke dynamic popup menus, so now we’re trying to fix that. Don’t see the connection? Ask yourself: what is a popup if not a ‘subform of matching records, presented in menu form?’ Internally, it’s common code: the code that finds the records that appear in a subform is the same code that finds the records that appear in a dynamic popup.
This is currently the only bug stopping us from shipping Helix 6.1.3. With luck, fixing that won’t result in something else breaking.
|February 5, 2009||
The "So close" posting (and TLW article) on December 31 left the impression that Helix 6.1.3 was mere days from release. We thought it was. Unfortunately we ran into a small, but major snag. We should have posted a note about the delay, but we’ve been so busy chasing this down that we neglected to do that. We kept hoping that "tomorrow" the problem would be solved, but that has stretched out to over 4 weeks now.
The picture on the right shows the problem: note how the nested subform has checks distributed across the three columns in Classic, but not in macOS. This construction is extremely rare, but if just one customer relies on the results for mission-critical decision making, releasing Helix with such a bug would be irresponsible, or worse. (And since this bug was discovered by a beta tester, we know it is not just a theoretical problem.)
This bug was fixed on January 26, but the fix was in a fundamental routine, requiring extensive testing of all of Helix before considering it release-worthy. That’s what we’re doing now.
|December 31, 2008|
|December 18, 2008||
A new beta goes out today (the last one before the next Preview Release, we hope) and one of the bug fixes came with an interesting note from the engineer who fixed it:
This [index corruption bug] has been with us since the introduction of cold forms. Whoever implemented it (and I’m not sure who that was) had a less than complete understanding of posting.
If you think about it, cold forms are diametrically opposed to one of Helix’s original breakthrough advances: referential integrity. Referential integrity in Helix originally meant that when you change a value on View A, that change is immediately reflected on View B. Change an entry, the list updates. That was remarkable in 1984. Then in 1986, MultiUser Helix debuted and the concept of referential integrity had to extend from not just your screen, but to every screen on every Client. With that the concept of “what you change has immediate repercussions throughout the system” was deeply entrenched.
Then, during the Double Helix years, the concept of “Cold Forms” (the option to turn referential integrity off) was introduced. This attempt to minimize network traffic was poorly executed and continues to this day to be a thorn in our side. The net effect is that all sorts of things (posting and indexing in this case) started to go flaky when a Cold Form were added to the mix.
During the intervening years, a lot of bugs were fixed with the “I see the problem here, but I don’t dare fix it there for fear of introducing another bug so I’ll add code to deal with this specific bug here and leave the bigger issue for somebody else to deal with” method. Unfortunately, our complete rewrite of the user interface is removing a lot of those “counteracting kludges” and exposing the root bugs that have been there for years.
The upshot of all of this: if Helix — Classic or macOS — seems to be acting buggy to you, turn the Keep Current option back on to see if that resolves the issue. And let us know about the problems you encounter.
|December 5, 2008||
I was reminded that we haven’t posted an updated in a while, so here it is: printing looks better every day, basic document management works very well, and we continue to eliminate pesky bugs. If we are really lucky we’ll have a new Preview Release by the end of the year.
We also got a ‘bonus’ when we did document management: when running under macOS 10.5 (Leopard) Helix supports Drag and Drop operations on most fields! When running under Leopard, you can add a document (or text) to a field in your collection by just dragging it from the Finder. You can copy data from field to field by dragging from one to the other, and you can drag field data out of Helix to the Finder. There are a few quirks (like you can’t drag documents to Mail.app) but overall it’s a nice bonus for people running Leopard.
|October 28, 2008||
Another bon mot from one of our engineers:
As always, the question is not always what to fix, but often how much to fix…
|October 22, 2008||
It’s been a difficult journey these last few weeks. The three major changes (printing, networking, and document management) have made our code quite unstable as we work to refine a lot of new code. But progress continues and with luck we’ll have a new (and much improved) Preview Release before too long.
|September 9, 2008||
The latest updates were rolled out in the September 5th edition of The Latest Word, but here’s a summary: printing has been completely revised and is now razor sharp. Performance has improved — it would be most accurate to say that we’ve made a fundamental change to the way Helix works, paving the way for significant improvements down the road a bit. And we’re well on the way to reinstating the basic components of Document Management.
One of our engineers wrote something that made me chuckle, so I thought I’d pass it along:
I have fixes for the window closing problem and some related “once in a million” timing issues. As we all know, once-in-a-million bugs seem to occur at a more frequent rate than advertised; too bad they are not lottery tickets.
|August 4, 2008||
Based on overwhelming feedback from the Preview Releases, we’ve been working on two things: printing and Client/Server performance. We think you will be quite pleased with the results.
|July 11, 2008||
Two fairly large but simple to fix bugs were reported after the release of Helix 6.1.1. Both are fixed and Helix 6.1.2 is now available.
|June 30, 2008||
Helix Server for Intel ships!
The document corruption bug that affected a few users (we had just 2 reports) has been fixed in both the Intel and PowerPC Servers.
A new Preview Release of the macOS Client and Engine is available, including (for the first time) the Intel-native products.
|June 23, 2008||
Lots of little bugs are being knocked off and it looks like we’ll meet the June 30 ship date for the Intel-native Server (and Client/Engine Preview Release).
|June 4, 2008||
Well, hey! hey! We have solved the problem that kept the Intel-native products from running on macOS 10.4.
|May 19, 2008||
QSA ToolWorks, LLC today announced Helix Server for Intel 6.1, with an expected shipping date of June 30, 2008, along new Preview Releases, available immediately. See the Press Release or The Latest Word for more details.
It also looks like we have solved a problem that kept the Intel-native products from running on macOS 10.4.
|May 8, 2008||
Progress continues steadily, and it looks like we should be able to ship Preview Release 3 of Helix Engine along with the first Preview Release of Helix Client soon.
And in a change that will warm the hearts of many of the Helix Engine Preview Release users, we’ve fixed the “no frame = no space” bug. Two unframed text rectangles no longer have their text mashed together.
|Apr 4, 2008||
Helix Server for PowerPC 6.1 shipped today. Immediately available with a Classic Client, this is nonetheless a very important milestone. This is our first official release since we were forced to switch from CodeWarrior to Xcode, and it is the first version of Helix Server that supports Clients running natively in macOS.
Up next are two exciting developments. First: testing on Helix Server for Intel 6.1 can take center stage. (We could still use a few Helix Universal Pioneers to help us out here.) Our preliminary tests lead us to believe that this is very close to ready.
Second: now that Helix Server 6.1 is stable, we can work toward shipping a Helix Client Preview Release.