|
|
| Product | |
| Support | |
| Everything Else | |
| OS X Native Helix & Xcode Transition Progress Report | |
| Introduction |
The process of bringing Helix up to date — including running the full feature set natively on Intel Macs — is an ongoing process was difficult in the first place, but compounded by the rapid changes that have been happening in the Macintosh world at the same time. One month after the release of Helix Server 6.0 — our first OS X native Helix product — Apple announced that they were switching from the PowerPC chip they had been using since the early 90s to Intel. This put Helix users in a bind (once again) as Intel Macs do not support the Classic environment. At that time, only Helix Server was OS X native; OS X versions of Helix RADE, Engine and Client were not yet under way. Even worse for us was the requirement that all Intel-native development be done using Apple’s Xcode development tool. Helix was being built with CodeWarrior, the industry standard for nearly 20 years. Before we could continue working on OS X Helix, we faced the arduous process of converting our entire code base to Xcode. Although this is fairly easy for small projects, large projects present difficulties that must be addressed. Old techniques no longer work and every corner of the code must be retested to find out if it still works, can be made to work, or must be scrapped and replaced. There are sections of code in Helix were largely untouched since they were written in the mid-80s! The purpose of this page is to document the progress we are making in short form, keeping you up-to-date on the status and providing a timeline that we can look back on when we are all done and have time for such trivialities. The entries here are short and laden with programmer-speak. For the “big picture” of where we have been and where we are going, be sure to read our periodic newsletter, The Latest Word, which outlines our progress in a more readable (and verbose) form. |
| Progress Log | |
| Aug 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 |
QSA ToolWorks, LLC today announced immediate availability of Helix 6.1.6. See the Press Release or The Latest Word for more details. |
| June 8, 2010 |
Whew. Steve Jobs' 2010 WWDC keynote address has passed and no mention of "OS X 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) is available here. 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 |
OS X 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 |
QSA ToolWorks, LLC today announced immediate availability of Helix 6.1.5. See the Press Release or The Latest Word for more details. |
| November 24, 2009 |
A breakthrough related to OS X 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 OS X Client/Engine stability and performance. Not much detail to talk about. |
| August 31, 2009 |
QSA ToolWorks, LLC today announced immediate availability of Helix 6.1.4. See the Press Release or The Latest Word for more details. |
| August 28, 2009 |
Mac OS X 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 OS X 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 OS X RADE. A ‘passing of the torch’ moment happened while updating some code for OS X. 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 |
QSA ToolWorks, LLC today announced immediate availability of Helix 6.1.3 as Universal products. See the Press Release or The Latest Word for more details. |
| 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 picture on the right shows the problem: note how the nested subform has checks distributed across the three columns in Classic, but not in OS X. 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 OS X — 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 OS X 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 OS X 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 Mac OS X 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 Mac OS X 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 OS X. 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. |
| Index |
Current Entries: Client & Engine Preview Releases (Present – April 2008) Part Two: Beta to a Shipping Server (March 2008 – Sept 2007) |