
- Home
- Magazine
- Conference & Seminars
- News
- Archives
- Forums
- Store
- Directory
- Editorial
- Advertising
- User/Login
- Contact



After a winter hibernation, BAMADA-the San Francisco Bay Area MADA affiliate-is back in business, with illustrious speakers, first-peek demos, and one of the toughest audiences a presenter could ever dare to meet. BAMADA is now holding court the first Thursday of each month at 7pm in Apple's spanking new R&D campus, at 4 Infinite Loop (no, I'm not kidding) in Cupertino. Thanks to Bill Harris of Apple Computer for arranging the wonderful new meeting space. At the July meeting, attendees were treated to demos of the lightweight application framework QuickApp and the latest revision of the venerated MacApp view editor IcePick.
QuickApp owes its performance to the Wilson less-is-more design credo: "I guarantee that QuickApp has less features than your framework." It uses true pointer-based C++ objects and C++ language features. For example, objects are initialized by their constructor methods, eliminating the error prone procedure of having to create a new object and then explicitly call its initialization method. Another language feature used in QuickApp is multiple inheritance; the model for doing this is the LISP-like notion of mixin classes, which add well-defined behaviors to other classes. An example of a QuickApp mixin class is MDraggable. View objects that have MDraggable mixed in know how to be dragged, although the current implementation doesn't support multiply selected objects. Another mixin is MIdler, which lets objects perform periodic processing. Not a threads-based solution, an MIdler object must manually save and restore its context between calls to its idle method.
Is QuickApp right for you? The product is young and evolving rapidly, and therefore will not be stable like the more established frameworks. However, if you want to be productive while sitting in a doctor's waiting room (Dave Wilson had been enhancing the framework that day in just such a fashion), then the product is worth looking into. QuickApp sells for $99, and can be purchased direct from Emergent Behavior.
A powerful new feature in this version is the ability to add support to IcePick for user-defined behaviors, adorners, and views. Users must write code to support editing and streaming of their custom classes, using objects provided by Sierra in library form. This custom code is not dynamically bound into IcePick at runtime; instead it is linked along with the IcePick code (provided in library form) and the MacApp libraries to produce a custom version of IcePick. This seems much more cumbersome than using Shared Library Manager, but is a positive first step. The distribution will include a pre-linked binary for those who don't need the customization features.
Another nice new feature for IcePick is greatly improved handling of string resources. IcePick can read STR# resources from one or more files. View parameters that point to strings (such as are found in TStaticText) can be set by choosing the desired string from a popup menu. IcePick even endeavors to filter out duplicate strings in your application; if the string you type in for a TStaticText matches an existing string, IcePick will use the resource id and index of that string; otherwise it will create a new one. Of course, the programmer might actually want two separate strings in certain circumstances (localization comes to mind); Chris took suggestions from the audience on how to accommodate everyone's needs.
If IcePick 2.0 is a reliable indicator, 3.0 could be the view editor to beat. Pricing for IcePick 3.0 is $245 retail, $195for MADA members, and free (plus shipping) for registered users of IcePick 2.0.
The final event of the evening was the customary after-meeting meeting at the Peppermill, where among other things, BAMADA regulars got to say their last good-byes to BAMADA founder James Plamondon before he left the Bay Area for Redmond, WA (will he found RAMADA there?). The current authority figure for BAMADA is Tom Becker. If you're interested in speaking at an upcoming meeting, or want to be placed on the mailing list for BAMADA announcements, contact Tom at twb@apldbio.com, or call (415) 570-6667.
Before Loïc took the stage, Steve Jasik of Jasik Designs showed off the new features in the latest release of his Macintosh debugger, The Debugger. Along with new user interface enhancements like option-shift-left bracket, The Debugger now sports a scripting language and the ability to execute MacsBug dcmds. With looping and conditional support, the scripting language allows users to perform dcmd-like things without having to code in C. Jasik showed example scripts that walked the open window list and that imitated the MacsBug drvr dcmd. He also ran the real drvr to show the dcmd support. Unlike MacsBug, dcmds can be dynamically added to The Debugger at runtime.
Object Master is ACI's source code editor magna cum laude. With its direct knowledge of C, C++, Pascal, Modula 2, and resource files, Object Master parses your source code and builds a dictionary of every function, method, class, constant, and structure. You then edit your code in a hypertext wonderland, never having to care what file a particular item is defined in. Version 2.0 Universal, shipping now, has over 150 improvements to version 1.0 - and Loïc tried to show the BAMADA audience every one of those improvements. Among the major functionality enhancements are:
All of these features are seamlessly tied into Object Master's existing windows. For example, while editing a method in a browser window, choose Check Out from the menu bar and Object Master checks out the file containing that method from the appropriate project. Change a method's parameter list while editing the method and Object Master volunteers to automatically update the method declaration in the object's class definition. Regular expression searching is facilitated by a commando-like interface for building search patterns without remembering what •, ≈, ¬, and ∞ mean.
The program is extremely powerful, and this power is multiplied by the use of AppleEvents and AppleScript. Double click on a resource in the resource map window and Object Master opens ResEdit (or the editor you specify) and brings up the resource for editing. Similar hooks exist for sending commands to MPW/ToolServer. The program has a high degree of support for the AppleEvent object model and can be manipulated quite readily with AppleScript. Scripts placed in the program's startup folder are executed at startup and can add menus and other functions to Object Master's repertoire. The only sore spot in the AppleScript support is that the program's actions are not recordable.
Object Master, other than being the editor with which 4D is developed, bears little relation to ACI's core database business and sometimes received little corporate attention. This appears to have changed. Loïc and ACI product manager Eric Gries (who raffled off a free copy of Object Master 2.0 at the meeting) announced a full slate of upcoming Object Master releases. A Think C version of Object Master will appear in 1-2 months. This version, tentatively priced at $255, will have Pascal, Modula 2, and MPW support removed. Around the same time, the universal version will be upgraded to version 2.1, mainly to match the bug fixes and features available in the Think version. A 3.0 version of Object Master is being planned for next year, to debut first for Microsoft Windows in Q1, and then for Macintosh in Q2. Features being considered for 3.0 include parsing of Rez files and whatever else users suggest or Loïc dreams up.
The evening concluded with a panel discussion, chaired by BAMADA organizer Tom Becker and featuring Loïc and object model personality Eric Berdahl, on strategies for adding AppleScript support to Mac applications. For Object Master, Loïc wrote a framework-independent set of classes for parsing and responding to the AppleEvent object model. He then hooked those classes into the (MacApp 2.0, Object Pascal based) Object Master source code, calling existing MacApp methods to responsd to many of the standard events (open, close, resize, etc.). The total implementation time for AppleScript support in Object Master was on the order of two months. Eric claimed that properly designing for and coding AppleScript support into an application is closer to a one year endeavor, which prompted some audience members to remark "he's obviously using Taligent time schedules." All agreed that supporting AppleScript is difficult, framework support is critical but lacking, and that small developers now have but another hurdle to jump over in order to create fully featured Macintosh applications. Perhaps Ken Ryall's MAScript package, which adds AppleScript support to MacApp, will help in this regard.
BAMADA meets the first Thursday of each month at 7 P.M. at 4 Infinite Loop in Apple's R&D campus in Cupertino. At the September meeting, the Newton team will talk about and answer questions regarding the Newton Toolkit. If you're interested in speaking at an upcoming meeting, or want to be placed on the mailing list for BAMADA announcements, contact Tom Becker.




