|
Volume Number: | 3 | ||
Issue Number: | 12 | ||
Column Tag: | Conference Reports |
MacHack West, Paris Expo
By Joel West, Contributing Editor & Jörg Langowski, Editorial Board
MacHack West Report
Joel West
Palomar Software, Inc.
Contributing Editor
My focus is going to be a little different than David Feldt’s article (see “MacHack ’87”, MacTutor, August 1987), but then the conference was somewhat different than the one David attended, which we’ll get to in a moment.
I didn’t hang around much with the parties or late-night hacking (if there was any), but got to hang around with some neat people and came away with a pile of interesting technical information.
What’s in a name?
A rose by any other name would still smell as sweet -- Romeo and Juliet
Despite commonly being quoted out of context, Wil Shakespeare wasn’t arguing that names were unimportant, only that they sometimes have more importance than they should.
In this case, the name “MacHack West” caused lots of people lots of problems and nearly took the conference with it. I’ve talked to most of the principals and barely think I know what’s going on.
When you hear “MacHack West”, you think of, “like the MacHack conference, only held on the West Coast.” At least I did, and thought it was a great idea, even if the middle of Oregon seemed a bit remote. It wasn’t that simple.
It seems that the sponsors of the conference -- Oregon State and Apple’s Portland sales office -- had nothing to do with the MacHack conference that had been run twice previously at the University of Michigan. And, as I gradually learned more about the conference, it seemed that more people were upset.
When I saw Scott Boyd and Greg Marriott (aka the “MacHax™ Group”) at the Boston MacWorld Expo, they were spittin’ bullets (and not just a nearby windows, either). They said the way the Oregon folks had approached it was sneaky and underhanded, as opposed to the folks organizing the Michigan conference, who’d asked them permission.
Of course, much of this may be associated with the friendships and perhaps even regionalism associated with the Mac community. Both the MacHax and their friends at ICOM (aka the TMON gang) were major players in organizing the Ann Arbor conference and didn’t know anyone at the Corvallis conference.
After it was all over, I talked to Aimee Moran, vice president of Expotech, Inc. Expotech is the professional management company that’s running the Ann Arbor conference, along with other shows. It’s her position that MacHack is a common-law trademark of Expotech, and they had threatened to shut the Corvallis show down over use of the name.
Some people I talked to in Cupertino (I’m not sure if they’d like to be named) were putting pressure on all parties to reach a reasonable accommodation. Both George Beekman and Mike Johnson of Oregon State told me they never had any attention of stealing any name, and all they wanted to do was put on a successful show.
In the end, Moran said, Corvallis could use the name once -- as long as it acknowledged the trademark -- in order to avoid disruption of the show’s planning. But, she said, it would not be called “MacHack” next year.
Three Cheers for Tech Support
My biggest impression of the conference was what a difference the Apple people made to the show. If you’d pulled the Apple speakers, it would have been a real dud, certainly not worth the $218 flight to Portland and the 90-mile drive to Corvallis. Instead, Cupertino sent a large contingent. The names include:
Jim Friedlander, tech support
Chris Derossi, tech support (MacTutor Contributing Editor)
Fred Huxham, tech support
Jordan Mattson, MacApp evangelist
Art Cabral, Mr. Pallette Manager
Steve Maller, course instructor
My understanding is that the Apple participation was arranged by Mark Regan of the Portland sales office, who was somehow able to convince these guys to leave the grimy traffic jams of Silicon Valley to spend two days in a tree-lined college town in the middle of nowhere. None of them seemed to regret this decision.
This was the first time I’d met any of the tech support people face-to-face. Some of them wasted no time in griping about the stupidity of some of my questions, but once we agreed on that, it was all downhill from there. Chris Derossi and Fred Huxham are both known to MacTutor readers from their past contributions and letters. Chris Derossi is also famous for his “Chief Wizard” posts on the Mousehole BBS, being a long time ‘hole participant, and one of the founding board members of MacTutor.
New Faces, New Attitudes
One of the big changes at tech support is an infusion of new blood. I knew two of the most recent additions before they went to Cupertino, and, I must say, I’m impressed.
One of the two is Mark Bennett, who, along with Charlie Jackson and Eric Zocher (president and VP of Silicon Beach) and myself, was one of the early leaders in the San Diego Mac User Group. Mark wrote MacTools for the Copy II Mac folks, but then abandoned San Diego to join Ashton-Tate in L.A. Mark gave his notice after dBase Mac shipped.
Mark is one of those guys who doesn’t seem to care if it’s never been done before (or maybe that makes it even more interesting). It certainly can’t hurt for Tech Support to have members who have worked for third-party software developers, facing all the “Outside Apple” problems that the rest of us mere mortals face. Mark joins Derossi, another Ashton-Tate veteran.
The latest new name is Darin Adler. Yes, Darin Adler, of TMON EUA fame. While I only get to see him at the semi-annual Expo shows, Darin has impressed me as having one of the quickest programming minds I’ve ever met. He also makes me feel like any programmer is washed up at age 30 unless he accomplishes what Darin has in his early 20’s.
Overall, I was very impressed with the down-to-earth nature and grasp of reality shown by the tech support people I met. (For example, Jim said I’d done a great job on one of my recent articles.) And, it turns out, they are more in tune with the developer community than anyone else at Apple.
In one of the sessions, Jim noted that Apple has worked hard to turn things around in the last 18 months. Actually, it seems to have been more recently than that. I can recall when I began on my book [Joel has a new book on MPW programming, which we highly recommend. -Ed] getting responses like “Buy this book from APDA [I had] and this is how you join APDA [I had].”
I noticed the most dramatic change as the Mac II was rolled out, as tech support sought to bring everyone up to speed on new products on which Apple corporate placed a high priority. Everyone was learning, and it seemed as though tech support had a more open attitude about providing information.
Compatibility isn’t important
(Thought that would get your attention; we’ll get to it in a moment).
Chris Derossi taught one session I sat in on, although, with both Jim and Fred kibbitzing from the front, it’s not clear from my notes who said what. From now on, Derossi noted, there are actually three levels of answers to a “How do I do this which is undocumented?” They are:
1. “Don’t do that, don’t do this, you’re going to break.” Examples include tabs in TextEdit, drawing in the menu bar, etc.
2. “You don’t want to do this because of this and that, but here’s how ” They’ll be sure to let you know how and why this will break later.
3. “We can’t help you.” For example, many low-memory globals are considered Apple proprietary, and can’t be released outside the company.
Chris noted that you don’t always have to be compatible. Apple will be more likely to show you how to do risky things if it’s a one-time hack for yourself, rather than a commercial product.
This, in fact, came up in regards to making the Apple video card put out NTSC output in interlace mode. I got my copy of a little program from Allan Foster of Apple Specific, a consulting company with a funny name based somewhere in the Pacific NorthWest. (His partner said they’d been using the name for more than a year without any hassles.) The listing is shown below in example 1.
When asked about this specific instance, one of the tech support weenies said that they had the code, and would give it out as a #2, unsupported solution. However, he said they had nightmares that it would show up in a product on the shelf someday.
On the other hand, if you break the rules, you’re always on your own for future compatibility. “We’re not to care if your program breaks,” Derossi said, and that rule is even going to be enforced for the big guys, not just the little guys. For example, Microsoft applications break under A/UX, presumably due to their non-standard memory management.
The specifics of compatibility were primarily those of Tech Note #117. Tech Support has not been idle when supplying compatibility information, and there’s a whole slew of it now available.
All-in-all, however, I think this shows a marked improvement from the days of “Everything that you have a need to know is in Inside Macintosh.”
Twenty-five Color QuickDraw tips
The most valuable talk I went to was offered by Art Cabral. Art, as someone who criticized the IIgs was quick to learn, was part of the GS development team. He also put together the Palette Manager in less than three months -- which, as I noted in a previous article (“Sleuthing the New System File”, August 1987) was too late to make the Mac II ROM.
Art gave an alpha-to-omega talk on Color QuickDraw, which I thought was going to be pretty boring. However, I was soon scribbling away with all sorts of secrets that I thought others might appreciate.
I collected a whole list of tips. (I might have even known some of this before, but never realized the significance.) Some of these were also made by tech support types, either during his talk, or later, but they all seem great to me. Note that at the time of the talk, System 4.1 was shipping and System 4.2 was in late beta, so some of the problems may have been (or will be) fixed.
Here they are:
1. CopyBits doesn’t work right unless you have
ForeColor(black)
BackColor(white)
2. On an update event, check the ctSeed to see if the color table for this window has changed.
3. The ctFlags field (of a ColorTable record) is used to indicate a color table for an off-screen port, i.e., not on any device.
4. If a pixel value larger than 65,535 is required, it is assumed that you are doing direct RGB values, and so the color table only needs two-byte pixel indices.
5. The Palette Manager supports approximately 4,000 palette entries, not just the 256 colors normally in a color table. You can also use subranges of a palette at different times in your program.
6. CopyBits will be much faster if the ctSeed is the same on both ports.
7. One way to speed a CopyBits is to force the seeds to be the same. For example, if you’re copying to an offscreen port, make it the same as that of the source window.
8. In 256-color mode, each CopyBits adds a 1K color table to the picture. The less CopyBits calls, the better; 20K-40K worth of bits at a time is a reasonable size.
9. The Palette Manager looks for a color within the range of a tolerant color and, if it finds none, creates a new color exactly the same as that requested.
10. The Palette Manager supports explicit colors, corresponding to the pixel value that’s actually going to be stuffed in the screen PixMap. It ignores RGB value and leaves the index to be interpreted by the video card as a color in the device’s color table, so, for example, an index of 0 will draw white.
11. Colors drawn in the desktop are not reserved by the Palette Manager; but
12. The six colors of the Apple in the menu bar are automatically allocated by the Palette Manager; colored menus (‘mctb’ resources) are not allocated.
13. Region calculations are used to keep track of which colors to keep; one of the goals was to display the “Cheryl Tiegs” image well.
14. The standard 256-color clut contains every combination of six intensities of red, green and blue, plus 16 different intensities of pure red, green, blue and white. There’s some overlap, which is why it’s 256 and not 280.
15. If a window is animating colors in the back, it may lose its colors to the frontmost window. Art showed his Spinnaker program, which kept putting up windows of animating colors and was both an impressive demo program and test suite. (He borrowed a monitor from a developer who brought a Mac II so he could have two monitors with different color depths).
16. When the Palette Manager makes a change that affects a window, it generates an update for that window. If the window had been saving the screen bits, it should use CopyBits to put them back, because the actual indices may no longer be valid (because the color table might have changed.)
17. The Palette Manager gives priority based on entry type, then on a first-come, first-served basis. In 16-color mode, priority is given to:
• The first 16 animating colors; if none,
• The first 16 tolerant colors.
Other colors come later.
18. Apple is working on gray-scale support for the LaserWriter printer driver.
19. There’s a bug in HSL to RGB conversion, so do the math yourself.
20. A flashing marqueé-style effect is done by the selection rectangle in MacPaint in b&w mode using XORing. To do it in color, save the pixels of the four lines of the rectangle and then flash the border.
21. The TI color chip (TMS34010) does its additive colors in pixel space, by adding the pixel values; color QuickDraw does it in RGB space, by adding the individual red, green and blue values.
22. The Palette Manager allows for direct color, that is, display devices that are not limited to the size of the indexed color table.
23. The manager was written from February to April 1987, and wasn’t integrated with the rest of the Toolbox until three days before the freeze date. One person worked on the Palette Manager and two on the Window Manager to complete the integration.
24. To use the inversion operators in color, there are several conditions:
• The color table begins with white and ends with black;
• The foreground color is black and the background color is white.
25. The OpColor trap is used for additive (mixing) color modes.
A/UX
Unfortunately, I had to miss most of Fred Huxham’s talk on A/UX, because I had to attend my own talk instead. (I talked about PICT and other graphics formats, which may someday appear in an expanded form in Resource Roundup.)
When I arrived late, Fred did say that special dealers will be selling A/UX, and they will be requiring special training.
He also said that AST’s $1,000 four-port serial port for the Mac II will be required to run AppleTalk. Why? Think about it a minute. AppleTalk shoves characters on the bus every few microseconds. As a result, it is entirely done with 68000 polling loops, rather than being interrupt driven. There’s no way that a UNIX kernel would settle for being shut down (with interrupts off) for that long, or if it was, that it would provide reasonable performance. Instead, AST has a board with a 68000 on it, 512K RAM and two SCC’s, for a total of four ports. I don’t know much about how it works, but Fred indicated that A/UX was being bundled with AppleTalk drivers for the AST board. The board also has a 50-pin connector with a mammoth cable breaking out into four DB-25’s, according to Fred. Awful as they are, give me the same connectors as I’m already using on my cables, those stupid MiniDin-8’s.
Hype-Our-Card
Don’t get me wrong. I’ve been trying it out developing Palomar’s invoicing system, tracking our pr/advertising effectiveness and receivables. I think HyperCard is great and, after MacPaint and HyperCard, I wonder what Bill Atkinson can ever do for an encore.
However, the nonstop hype for the product (starting with a MacWEEK article on the Boston Expo that claimed HyperCard was hot while MultiFinder was not) was beginning to get on my nerves. Enter the conference keynoter.
He was Danny Goodman, author of the best-selling book on HyperCard. I was told Steve Wozniak (originally billed as the keynote) cancelled for personal reasons, hopefully not having to do with the controversy. Wozniak was and is a hacker; Goodman, as he was the first to admit, is not. Some comments I heard questioned whether an avowed non-programmer was an appropriate speaker for such a conference, but he was, admittedly, an expert on a subject on a lot of people’s minds.
Goodman noted that HyperCard put Macintosh programming in the hands of non-programmers, “guys like me.” It’s a tool for very specific needs, not what would be used for developing commercial applications.
However, there’s room for programmers in developing XFCN’s and XCMD’s. (These resource types for separately-compiled code that can be used to add functions and commands to the HyperTalk language.) He urged development language vendors to supply sample code, since the Apple-supplied code is for MPW only.
If you do plan on developing commercial stacks, Goodman argued that professional design should be used for the stack layout. Otherwise, it’s easy to develop “junk” that doesn’t do anyone any good.
Market opportunities include:
• Electronic publishing, such as CD-ROM; Goodman cautioned against a dry transcription of the information, urging “sizzle” in the dressing;
• University training, like an Ohm’s law simulation;
• Vertical markets;
• Controlling specialized peripherals.
Since HyperCard’s password protection is not (and was not intended to be) very strong, developers should protect their proprietary interests using compiled code, rather than HyperTalk.
This and That
For several months I’d wondered why my Peak 30Mb hard disk wouldn’t boot from the Mac II. The one benefit I got from shipping my Mac II and Apple monitor to the show was getting the disk to work finally. Ron Aldrich (of Carl Nelson & Associates) installed his Adaptec 4070 Software Kit on the Peak, and, voilà, it worked.
According to his fellow technoids, Bo3B (the “3” is silent) Johnson of Tech Support has put together a hack that allows for 50+ DA’s to be installed at once. It may show up in a future system.
Each DA should have a window, even if it’s invisible. This helps the Layer Manager handle MultiFinder-related interactions.
If you use screenBits.bounds as a parameter to DragWindow (and GrowWindow?) the Window Manager knows that you mean all screens on all devices on the Mac II. This works as long as the dimensions are close enough.
Device drivers should be ready to run in 32-bit mode “soon”; other programs can drag along using 24-bit kludges for a while longer.
The Level-1 upgrades to the Mac 512 are still available. The Level-1 upgrade (disk, ROM) should be available from dealers without buying the Level-2 (motherboard) upgrade.
Several of the Apple panelists offered cautionary remarks about believing what you read in one of the Macintosh weeklies.
Some questioners asked why HyperCard doesn’t follow Apple’s own interface guidelines (like no windows on the 342x512 screen). The answer was, basically, Bill Atkinson does what he wants.
Although Apple got its share of criticism at the “Bash Apple” session, the largest share of the barbs during the two days came from Andrew Singer from Think (now Semantec). I don’t know whether Singer enjoys being controversial or just had a lot to get off his chest, but he seemed to go out of his way to criticize Apple.
LightspeedC splits benchmark contests with MPW C, Singer said. This didn’t say much for MPW, since Think knows how much better its compiler could be, he said.
He said Think’s evaluation of MacApp showed that it wasn’t useful for real programs. (Several MacApp users, including me, disagreed). He called on Apple to instead to develop an Application Manager that could be used for all programming languages.
Singer argued, in fact, that the whole area of object-oriented programming had been oversold. Despite MacSmalltalk being nearly given away to universities, the language has “failed” because it addresses the mindset of only a few people.
Apple doesn’t realize this, according to Singer, because it has some of the “religious messiahs” that created Smalltalk in the first place, including Larry Tesler and Dan Ingalls, formerly of Xerox PARC.
More To Come?
I’d never been to the Beaver State before. Corvallis is in the sticks, but it’s difficult to imagine a more pleasant setting then a small, plush college town in the middle of nowhere, and the early fall weather certainly cooperated. Even if it would be easier and would attract more people, holding it in Silicon Valley or Berkeley wouldn’t be quite the same.
The West Coast certainly needs an informal, regular technical conference like MacHack West. The Boston and San Francisco shows are zoos, and there’s no way that any technical session can have the intimacy and unhurriedness necessary for a free exchange of ideas.
So, whatever it’s called, there’s certainly a demand for such a conference in the future. Let’s hope that when the Fall of 1988 rolls around, there will be another conference and we’ll all have a chance to get together again.
Example 1: NTSC video on Mac II UNIT Interlace; (* Interlace mode for Apple Video Card; adapted to MPW Pascal by Joel West *) INTERFACE PROCEDURE SetInterlace(Slot:Integer); PROCEDURE ClearInterlace(Slot:Integer); TYPE RegArray = ARRAY[0..15] OF LONGINT; RAPtr = ^RegArray; IMPLEMENTATION PROCEDURE SetInterlace(Slot:Integer); (* Set to NTSC Video *) VAR CardPtr: RAPtr; (* Pointer to array of longints *) LongPtr: ^LONGINT; Dummy: Longint; BEGIN (* CardPtr := $100000L*Slot +$80000L; card = $00100000*slot +$80000 *) CardPtr := POINTER(BSL(Slot,20) +$80000); (* Due to “byte lanes” (see Slot Manager), we only write a byte of each 32-bit long integer *) CardPtr^[0] := $FF; CardPtr^[1] := $48; CardPtr^[2] := $FF; CardPtr^[3] := $F7; CardPtr^[4] := $9F; CardPtr^[5] := $1A; CardPtr^[6] := $C4; CardPtr^[7] := $E6; CardPtr^[8] := $FA; CardPtr^[9] := $F7; CardPtr^[10] := $E5; CardPtr^[11] := $F1; CardPtr^[12] := $7B; CardPtr^[13] := $F1; CardPtr^[14] := $D1; CardPtr^[15] := $06; LongPtr := POINTER(BSL(Slot,20) +$C0000); Dummy := LongPtr^; (* Must be a Longint reference *) END; PROCEDURE ClearInterlace(Slot:Integer); (* Set To Mac Normal video *) VAR CardPtr: RAPtr; LongPtr: ^LONGINT; Dummy: Longint; BEGIN CardPtr := POINTER(BSL(Slot,20) +$80000); (* card = $00100000*slot +$80000 *) CardPtr^[0] := $FF; CardPtr^[1] := $B8; CardPtr^[2] := $FF; CardPtr^[3] := $F7; CardPtr^[4] := $0F; CardPtr^[5] := $1A; CardPtr^[6] := $88; CardPtr^[7] := $B9; CardPtr^[8] := $FA; CardPtr^[9] := $EF; CardPtr^[10] := $E1; CardPtr^[11] := $E9; CardPtr^[12] := $79; CardPtr^[13] := $69; CardPtr^[14] := $D2; CardPtr^[15] := $02; LongPtr := POINTER(BSL(Slot,20) +$B0000); Dummy := LongPtr^ ; END; END.
Apple Expo - Paris
Jörg Langowski
MacTutor Editorial Board
I took the opportunity to meet David and Laura at the Apple Expo in Paris, and see what the European Mac scene is up to. In fact, I won’t repeat news that you’ll already have heard from Boston’s MacWorld Expo, like the introduction of Hypercard and Juggler (oops MultiFinder is the word). Therefore the following lines are nothing but a very subjective and limited selection.
The Editor Speaks!
David gave a speech at the developer’s conference which was very well received, recalling the history of personal computers starting from the Altair 8080 and ending with the obvious culmination point, the Mac. In a reply to recent changes in Apple policy towards developers, trying to make developer’s contracts more hard to get, he recalled the beginnings of Mac developing: The broad base of programming knowledge that exists now would not have been possible if one would have been stuck with Apple’s policy in 1984 that said that the Mac wasn’t really a programmer’s computer. In fact, those who didn’t buy this policy were those who advanced the ‘opening’ of the Macintosh and made it into what it is now. This fact seems almost trivial nowadays - but it should be repeated so that it isn’t forgotten.
[There is considerable confusion in France over the policy changes by Apple as to who will qualify as a developer and this generated the most heated debate. Instead of qualifying companies or individuals, developer’s will be qualified on a project basis and will remain certified for only as long as a specific project is in development. The potential loss of developer status sent many programmer’s into a frenzy since there is a general feeling in France that without Apple’s direct involvement and support, a programming project doesn’t stand a chance of getting off the ground. French developers are much more dependent on Apple than their US counterparts. -Ed]
David also pointed out that being in Europe should not keep you from writing for MacTutor - in fact we know there are many of you out there that have good material in their drawers but are for whatever reason hesitating to write it up. Well, DO write it up, it doesn’t even have to be all that nice and slick, we’ll edit it. David and I have agreed that European contributors should send their articles directly to me. Even though my address is printed in the masthead, I’ll repeat it here:
Jörg Langowski
EMBL, c/o ILL, 156X
F-38042 Grenoble Cedex
France
I’m looking forward to your contributions.
TNT DA
One product that was introduced at the Apple Expo deserves special mention. It is a desk accessory called TNT. No, the name doesn’t mean that you create bombs with it; on the contrary, the (first) version that I have is remarkably bomb-free. TNT is short for Think ‘n Time, and at first glance the thing resembles an outline processor like Acta. I am writing this column with it. I don’t know whether you find my column more structured this way (I have my doubts), but I love TNT.
TNT displays the hierarchical structure of a document in a nice little tree chart, with icons at each node that change depending on whether the chapter has sub-chapters, has text in it or not. Clicking on the corner of the icon will get you into a powerful small editor, much like miniWriter, to edit the text associated with that chapter. You can move branches of the tree to and from other branches at the flick of a mouse, and scroll through the whole outline of your document using either scroll bars or a ‘hand cursor’ like in MacPaint. Of course, the outline can be saved as it is, as a text file, and even as a MORE document. It may be printed as text, or in form of a tree indicating the structure.
But more (pun intended): each item of the outline may bear a date, which makes TNT a nice planning aid; there is even an option to automatically generate a calendar outline structured by months and weeks. On top of that, each item may contain one number, and simple calculations may be carried out to store - for instance - the sum of the numbers in all sub-items into the next higher level item. This means that simple spreadsheet-like operations can be done by TNT; one example on the disk maintains a portfolio with items in different currencies.
This gem has replaced Acta, MockWrite, and Calendar in my desk accessory menu. Very much recommended. It is distributed in Europe by Emday, 71 rue des Atrebates, B-1040 Brussels, Belgium, phone (32) 2-733-9791, and in the US by Mainstay, 5311-B Derry Ave., Agoura Hills, CA 91301, phone (818) 991-6540. Its price is somewhat less than $100.
Apple introduced the wide carriage Imagewriter LQ, which seems to be a good alternative to the Laserwriter; some people I talked to even liked it better because one can add up to three sheet feeders.
Winsoft (local heros from Grenoble) introduced a multi-lingual word processor which uses the Script Manager and allows you to type in Arab and Latin scripts simultaneously. The text processor itself, also, seems very well made, compares well with products like MS Word or WriteNow. They also work on (or have?) a version for Kanji script.
DDA Brings APDA to France
The last thing that I’d like to mention is that Serge Rostan (I.Development, see his address in any of his MacTutor ads) has started DDA (Documentation Developpeurs Apple), the equivalent of APDA in France. He’ll be offering the complete product line of APDA, has most of it in stock (so no waiting, overseas phone calls or Fed Express charges) and will sell it at US$ prices, applying the French Franc to US$ exchange rate, which is 6:1 at the moment. This means we’ll have APDA materials cheaper than at APDA itself, how’s that for a change. [Serge Rostan is a great friend of the French Development community and a MacTutor fan! We wish him well. -Ed]
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine