TweetFollow Us on Twitter

November 91 - BAMADA Notes


James Plamondon

AUGUST-Larry Rosenstein

An audience of 75 was treated to an evening with Larry Rosenstein, MacApp Wizard, at the August meeting of the Bay Area MacApp Developers Association.

Rosenstein is one of the authors of the original version of MacApp, and was deeply involved with the Lisa Toolkit before that. More recently, he co-wrote the book Programming with MacApp [in C++] from Addison-Wesley, along with David Wilson and Dan Schafer. Lately, he's been looking a little Pink, though he won't say why.


The meeting began with a grumble from the assembled host regarding the presence of a traitor in their midst-namely, me-who had abandoned the Mac to program for Windows. After arguing among themselves for a while, trying to decide whether I was a turncoat, a heretic, or a pioneer, the audience collectively decided that there wasn't a term foul enough to describe my actions. My protests that I was just taking a sabbatical from the Mac, and would be back in a year, were grudgingly accepted. Later, privately, many attendees said (in hushed whispers, so that none would overhear) that they, too, were under pressure to produce Windows versions of their software, and that they wouldn't mind getting a travelogue of my journeys in Windows land. Watch for such a series in a Mac programming magazine near you.

While we were on the subject, I informally broached the question of whether MADA's charter should be expanded to include frameworks for Windows. It was hard to decide which response was louder-the hisses or the boos. Either way, the idea was universally detested. Having MADA become one rib of an umbrella organization which covered lots of frameworks was more acceptable, so long as FrameWorks didn't get cluttered up with Windows stuff.

Filtered Commands

Finally, we were ready for Rosenstein's presentation. He began with filtered commands, which are a mechanism to reduce the amount of information that one must maintain in order to undo or redo a command. Rosenstein used the example of a complex styled text document containing hundreds of different style runs-a little bold Times, some 9-point Zapf Chancery, a dash of italic Courier, etc. If the user selected all of the document's styled text, and set it to plain Geneva 12, saving the previous state of the document-with all of its different styles-could take a lot of space. In the worst case, you might have to save off the entire old version of the document.

Filtered commands solve this problem. Instead of saving the pre-change data, and then altering the document in accordance with the command, the command installs a filter into each affected piece of data which makes it look as if it has been changed. In the example above, each style run object would be filtered to look like it was plain Geneva 12. To undo the command, the filter is simply removed; to redo it, the filter is reapplied.

Filtered commands simplify the implementation of Undo and Redo significantly, and reduce storage requirements at the cost of slightly slower data access times. See chapter 25 of Rosenstein's excellent book for a detailed description of the mechanics of the approach.


After Rosenstein described filtered commands, he moved on to streams, which are a major feature of MacApp 3. By using streams for data I/O, you can handle input and output more abstractly; for instance, you can stream to a file or to the clipboard with equal ease. Streams are discussed in detail in chapter 22 of Rosenstein's book.

The TStream class is responsible for reading and writing bytes, or aggregates of bytes, from and to "something." TStream's subclasses implement the abstract methods that do the actual reading and writing. For example, a TFileStream implements reading and writing to a file, while a THandleStream implements reading and writing to a memory block. A TCountingStream doesn't read or write anything-it just counts the bytes that it was told to write. This is particularly useful when trying to find out if there's enough room on a disk to hold a file, before you actually write it out via a TFileStream.

Rosenstein did a great job presenting his material to a interested and knowledgeable audience. We look forward to a presentation on Pink at his earliest convenience. (Would you care to schedule that now, Larry?)

September- Solution-based modelling

At the September BAMADA meeting, Jeff Alger introduced a crowd of over fifty attendees to Solution-Based Modeling (SBM). SBM is the subject of a book forthcoming from Addison-Wesley entitled "Developing Object-Oriented Software for the Macintosh," and is the brainchild of Alger and his coauthor, Neal Goldstein.

SBM is an integrated, lifecycle approach to software development. It emphasizes the importance of involving marketing, management, and other diverse groups in the software development process from the outset. Where other methodologies-most notably the "waterfall" model, in which analysis "flows" into design, design into programming, and so on-look at software development as a series of separate stages, SBM takes a more incremental approach.

Despite the title of Alger and Goldstein's book, SBM is a platform and language- independent methodology. (The publisher insisted that the word "Macintosh" be in the title; their studies have shown that people prefer to buy books directed at a specific platform. This led Goldstein to suggest that the book be titled "Platform-independent Software Development for the Macintosh," to be followed by "…for Windows," "…for OSF/Motif," etc.)

Although one could, in theory, do the actual programming in a non-object-oriented language, SBM takes a very object-oriented approach to analysis and design.

Involving non-programmers in design decisions

Project scheduling and task duration estimation are key to the success of any project. SBM addresses this issue in part by involving non-programmers in the design decisions as early as possible. Doing so leads these participants to buy into the process, so that they can better understand the technical tradeoffs. In fact, throughout the talk, Alger emphasized the need to get those darn marketing types involved as early as possible, so the programmers had a chance to pound some sense into them. I wonder if the talk would have been different, if given to a marketing group…

Visual Design Language

SBM introduces yet another graphical analysis and design language to the OOP world. Aptly named the Visual Design Language (VDL), it has the singular advantage of having been designed by graphic artists, rather than programmers. As a result, it is easier to read and understand than any other I've seen (such as the Booch Notation). Various other graphical design languages have left a bad taste in my mouth, but VDL looks yummy. No application yet exists to facilitate the process of writing in VDL, but we were assured such an application would exist in the near future. But then, I'm still waiting for Eiffel for the Macintosh.

SBM's strengths

SBM admits a number of unpleasant truths that are often ignored. For example, it admits that half of the project cycle will be taken up with analysis, and emphasizes the advantages of doing this analysis up front, rather than in numerous mid-course corrections. (Once a boss of mine asked me what I was doing "staring off into space." "Thinking," I answered. He actually replied, with some heat, "Well, get back to work!" I hope that guy discovers SBM, for the sake of his current employees.)

If half of the available time is taken up in analysis, half of what's left goes to design, with the remainder going to actual programming. Alger commented that this breakdown makes code reuse look less important in the long run; under SBM, reuse of analysis is twice as important as reuse of code. On the other hand, application frameworks like MacApp encapsulate not just code, but analysis and design, as well-so the "win" from using MacApp applies to all project phases, not just programming. Look at MacApp's failure handling, memory management, and command mechanisms, for example. Most pre-MacApp applications didn't have anything like them-not because they were so hard to code, but because they were so hard to invent. (And let me tell you, so far, no Windows framework I've seen has come close to these capabilities.)

Solution-Based Modeling (SBM) looks like a good tool for use in large, real-world software development projects. If you've found that there's more to the management of your multi-programmer projects than just using Projector, spend some time with Alger and Goldstein's book when it becomes available.

Upcoming in October- Feedback to the MacApp Team

At the BAMADA meeting in October, we'll have the MacApp Team at our mercy; the evening's topic will be "Feedback to the MacApp Team." Bring neither rotting fruit nor laurel accolades, but rather your comments, suggestions, bugs, gotchas, fixes, workarounds, feature requests, insolvable dilemmas, and ingenious solutions. Whether your comments relate to MacApp 2.0 (yes, there are still a lot of people using MacApp 2.0), 3.0, or X.x, bring them over and let's see what we can do with them. We may even get demos of the latest versions of Mouser and ViewEdit, if we're sufficiently polite.

As (almost) always, we'll be meeting on the fourth Wednesday of the month-October 23rd-at 7pm, in the Mountain View room of Apple's City Center Four building, on the southwest corner of Stevens Creek and De Anza Boulevards (at 20450 Stevens Creek), in Cupertino. Come early to grab a good seat. Be there or be tetrahedral!


Community Search:
MacTech Search:

Software Updates via MacUpdate

Dash 3.4.0 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
AirRadar 3.1.9 - $9.95
With AirRadar, scanning for wireless networks is now easier and more personalized! It allows you to scan for open networks and tag them as favourites or filter them out. View detailed network... Read more
Printopia 2.1.22 - Share Mac printers wi...
Run Printopia on your Mac to share its printers to any capable iPhone, iPad or iPod Touch. Printopia will also add virtual printers, allowing you to save print-outs to your Mac and send to apps.... Read more
SteerMouse 5.0 - Powerful third-party mo...
SteerMouse is an advanced driver for USB and Bluetooth mice. It also supports Apple Mighty Mouse very well. SteerMouse can assign various functions to buttons that Apple's software does not allow,... Read more
Alarm Clock Pro 10.2.5 - $19.95
Alarm Clock Pro isn't just an ordinary alarm clock. Use it to wake you up in the morning, send and compose e-mails, remind you of appointments, randomize the iTunes selection, control an internet... Read more
Cocktail 10.1 - General maintenance and...
Cocktail is a general purpose utility for macOS that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
RapidWeaver 7.1.7 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more
MacCleanse 5.1.6 - $29.95
MacCleanse is the product of thousands of hours of intense research and development. It meticulously scans all of the nooks and crannies of a computer for unnecessary junk that can take up huge... Read more
Slack 2.3.0 - Collaborative communicatio...
Slack is a collaborative communication app that simplifies real-time messaging, archiving, and search for modern working teams. Version 2.3.0: Note: Now requires OS X 10.8 or later New The app... Read more
Firefox 49.0.2 - Fast, safe Web browser.
Firefox offers a fast, safe Web browsing experience. Browse quickly, securely, and effortlessly. With its industry-leading features, Firefox is the choice of Web development professionals and casual... Read more

Latest Forum Discussions

See All

4 addictive clicker games like Best Fien...
Clickers are passive games that take advantage of basic human psychology to suck you in, and they're totally unashamed of that. As long as you're aware that this game has been created to take hold of your brain and leave you perfectly content to... | Read more »
Smile Inc. Guide: How not to die on the...
As if Mondays weren't bad enough, at Smile Inc. you have to deal with giant killer donuts, massive hungry staplers, and blasting zones. It's not exactly a happy, thriving work environment. In fact, you'll be lucky to survive the nine to five.... | Read more »
Oh...Sir! The Insult Simulator (Games)
Oh...Sir! The Insult Simulator 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: | Read more »
WitchSpring2 (Games)
WitchSpring2 1.27 Device: iOS Universal Category: Games Price: $3.99, Version: 1.27 (iTunes) Description: This is the story of Luna, the Moonlight Witch as she sets out into the world. This is a sequel to Witch Spring. Witch Spring 2... | Read more »
4 popular apps getting a Halloween makeo...
'Tis the season for all things spooky. So much, so, in fact, that even apps are getting into the spirt of things, dressing up in costume and spreading jack o' lanterns all about the place. These updates bring frightening new character skins, scary... | Read more »
Pokémon GO celebrates Halloween with can...
The folks behind Pokémon GO have some exciting things planned for their Halloween celebration, the first in-game event since it launched back in July. Starting October 26 and ending on November 1, trainers will be running into large numbers of... | Read more »
Best Fiends Forever Guide: How to collec...
The fiendship in Seriously's hit Best Fiends has been upgraded this time around in Best Fiends Forever. It’s a fast-paced clicker with lots of color and style--kind of reminiscent of a ‘90s animal mascot game like Crash Bandicoot. The game... | Read more »
5 apps for the budding mixologist
Creating your own cocktails is something of an art form, requiring a knack for unique tastes and devising interesting combinations. It's easy to get started right in your own kitchen, though, even if you're a complete beginner. Try using one of... | Read more »
5 mobile strategy games to try when you...
Strategy enthusiasts everywhere are celebrating the release of Civilization VI this week, and so far everyone seems pretty satisfied with the first full release in the series since 2010. The series has always been about ultra-addictive gameplay... | Read more »
Popclaire talk to us about why The Virus...
Humanity has succumbed to a virus that’s spread throughout the world. Now the dead have risen with a hunger for human flesh, and all that remain are a few survivors. One of those survivors has just called you for help. That’s the plot in POPCLAIRE’... | Read more »

Price Scanner via

Apple refurbished 2015 13-inch MacBook Airs a...
Apple has Certified Refurbished 2015 13″ MacBook Airs available starting at $759. An Apple one-year warranty is included with each MacBook, and shipping is free: - 2015 13″ 1.6GHz/4GB/128GB MacBook... Read more
64GB Apple TV on sale for $159, save $40
Best Buy has the 64GB Apple TV on sale for $40 off MSRP on their online store. Choose free shipping or free local store pickup (if available). Sale price for online orders only, in-store price may... Read more
EyeQue Introduces iOS And Android Based Advan...
Affordable vision technologies developers EyeQue have announced what they claim to be the world’s most advanced intelligent vision solution, pitched as enabling anyone, anywhere to easily and... Read more
Smartwatch Market Tanks, Declining 51.6% in 2...
The worldwide smartwatch market experienced a round of growing pains in the third quarter of 2016 (3Q16), resulting in a year-over-year decline in shipment volumes. According to data from the... Read more
CAZE announces Ultra Thin Glass Screen Protec...
Hong Kong based CAZE has announced its first ultra thin glass screen protector, the Glazz Pro for iPhone 7/7 Plus. Glazz Pro is made from chemically reinforced glass with an anti-fingerprint... Read more
11-inch MacBook Airs on sale for up to $120 o...
Newegg has 11″ MacBook Airs on sale for up to $120 off MSRP. Shipping is free: - 11″ 1.6GHz/128GB MacBook Air: $799.99 $100 off MSRP - 11″ 1.6GHz/256GB MacBook Air: $979 $120 off MSRP Read more
Up to $300 off Macs, $20 off iPads with Apple...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free, and... Read more
Apple’s Thursday “Hello Again” Event A Largel...
KGI Securities analyst Ming-Chi Kuo, who has a strong record of Apple hardware prediction accuracy, forecasts in a new note to investors released late last week that a long-overdue redo of the... Read more
12-inch Retina MacBooks on sale for $100 off...
Amazon has 2016 12″ Apple Retina MacBooks on sale for $100 off MSRP. Shipping is free: - 12″ 1.1GHz Silver Retina MacBook: $1199.99 $100 off MSRP - 12″ 1.1GHz Gold Retina MacBook: $1199.99 $100 off... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 52812872 Houston, Texas, United States Posted: Oct. 18, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Solutions Read more
Lead *Apple* Solutions Consultant - Apple (...
# Lead Apple Solutions Consultant Job Number: 52812906 Houston, Texas, United States Posted: Oct. 18, 2016 Weekly Hours: 40.00 **Job Summary** The Lead ASC is an Read more
*Apple* Retail - Multiple Positions- Towson,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Software Engineering Intern: Integration / QA...
Job Summary Apple is currently seeking enthusiastic interns who can work full-time for a minimum of 12-weeks between Fall 2015 and Summer 2016. Our software Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.