Home Search About Stone Design Stone's Throw Feedback Prices Download Software for Mac OS X

Live (and almost Dead) From MacHack '99
Copyright 1999 Andrew C. Stone. All Rights Reserved.

"MacHack - Open 72 Hours" is the catch phrase of this year's
premier event for Macintosh software developers - and fate has conspired to keep me awake for most of them! It's hour 60 and I've had 2 hours of sleep. I wanted more - but the first night I crawled into bed at 5:30 AM only to be most rudely awakened by the 6:00 AM alarm set by the previous tenant in this Detroit suburban Holiday Inn.

This hotel is the cyber equivalent of a Marine invasion - the hotel lobby is strewn with ethernet hubs, power strips, crawling twisted pairs, littered with candy wrappers, pizza boxes, Mountain Dew and Jolt empties, and several million dollars of G3 laptops with several billion dollars of software development inside. The best, brightest and whackiest from the Mac Developer community are in here in full glory, with a nary a marketing droid in sight. Truly a busman's holiday - 72 hours of non-stop hacking, pizza and caffeine!

Day one was a good time for blending with the energetic Macintosh developers. At last we're all realizing that we're in this together and the lines between 'nexties' and 'maccies' are beginning to blur. However, there is only a small percentage of OS X developers present. Mike Ferris, coauthor of the Cocoa Text system and NSDocument architecture (as well as Text Extras and other goodies at
www.lorax.com) and Fred Sanchez, the ever affable Darwin lead man, were an excellent addition to the usual suspects like Ken Case, Malcolm Crawford, Karl Kraft, John Randolph, and Cliff Matthews. Other Apple heavies included Dave Zarzycki and Josh deCesare of the Driver Kit and Dan Markarian of the I/O kit.

The only MacOS X-related session on the first day was a presentation by Fred "ambivalent" Sanchez (senior software engineer in Apple's Core OS/BSD Group and technical lead for Darwin) who gave a great overview of the Darwin project, its status and aims. In particular he gave a good critique of the various different public source licenses, making clear for example the limitations of the GNU GPL (it's too ambiguous), and why Apple had chosen to go its own way with licensing issues. Apple intends, however, to maintain good links with the open-source community. He also enouraged developers to get involved in the Darwin project, suggesting that good projects for developers to work on include system installation and device drivers, leading by example as will be shown later!

In private discussion later Fred expanded on his views of Apple's open-source policy. There are a number of tools which need to remain private -- Crown Jewels, such as the Quartz Windowing system -- however there may be a number of other tools which are not currently public which might be released if good arguments can be made. As a further aside, it is important to note that open-sourcing is not seen as a means to jettison dead-end technology.

Friday was the big day for Mac OS X presentations and Malcolm Crawford gave an excellent and thorough intensive course in Web Objects and EOF. John Randolph followed up with an IB, part 1 demo and I gave a rather rambling, stack-based rant on doing cool things with IB and PB. Karl Kraft and John explained the origins of ObjC and Ken Case showed how to use the Omni Frameworks to quickly build new apps.

We broke for dinner and unbeknownst to a group of about 10 of us, Karl Kraft picked up the tab. Karl gave an impressive rapid fire lecture on the ups, downs, ins and outs of the GNUStep project, now in its ~12th incarnation! Discussion of the pros and cons was fairly exhaustive. It's worth checking out -
www.gnustep.org - and all of us can contribute if we have a spare machine, usable OS, and stomach to handle the currently very command line state of the port. However, it's our ultimate escape hatch - and it's guaranteed ObjC! Talk of the anxieties of dealing with the zealotry associated with free software has led Karl to consider a fork where he'll be the lead architect. His company is funding the port, so it's much more likely to come to completion than so many of the earlier aborted attempts. Karl likes to stress, however, that his goal is not neccessarily to remain OpenStep-compatible; he sees no need to be a langauage-zealot to be productive, for example, and some parts will be written in Java.

Starting at midnight, the culmination of the coding frenzy with the presentation of the hacks that everyone had been working on - and according to MacHack tradition, the more useless a hack, the better! Most of the hacks were for MACOS 8, some of them outstanding, including an "Unfinder" which undoes moves made to files and folders in the Finder, and another hack to turn a Finder window showing two folders ("leftPaddle" and "rightPanel"!) into a Pong game.

There were just a handful of OSX hacks, all of which were very cool. Cliff Matthews (of Ardi and Executor fame) and I had set out to create a GUI interface to Net poker. When ever I visit Cliff in Albuquerque, he's got a game running in a shell and, to the uniniated, it's a jumble of text. So a nicely laid out visual interface seemed like a good idea. I think the Mac crowd thought it might be too useful - and someone falling off the stage after our presentation got more applause than we did! But we connected to an ongoing net poker game and the chips were flying, the cards turning, and being a poker neophyte, I quickly bluffed my way to busting. You can download the source (forgive any sloppiness due to lack of sleep!) and the HoldEmHigh.app from
ftp://ftp.cs.unm.edu/pub/stone/MacOSX/NetPokerForMacOSX.tar.gz -- this has many bug fixes since the version we showed last night which got burned on the MacHack CD. You'll need a live net connection to play - just launch, enter you nickname the first time, and wait for the next game to start!

Bill Garrison and Eugenio Jarosiewicz (with tips from Ken and Jim Correia) demoed "Blue Box Spy" - a very cool Cocoa app which displays a JPEG of the current state of a running Blue Box screen. They used a TCP server on the macos 8 side to shove the bits of a JPEG created using QuickTime from the screen buffer to the Cocoa app. Running a QuickTime movie on blue box, and then occasionally clicking update on the Cocoa side proved it was working great.

Finally, at the last hour, Dave, Josh and Fred demoed a very cool hack: "Shagadelic Telly". 30 hours earlier they had wandered over to the CompUSA next door and picked up a low cost WinTV tuner for Wintel machines. They worked with very sparse docs building a device driver to allow a hand-hacked version of OSX to display Television or DVD output in a draggable window. The color was a little off which created a pschedelic effect but they got it working and demoed it in style. Working hard overnight and during the following day, they got the colours right and -- importantly for some -- ensred that the display updating does not stop when the window is moved. There is still some work to be done, however for a 48-hour hack it was an outstanding effort -- kudos to Fred, Josh and Dave for producing a tool which will probably significantly diminish the productivity of the Mac OS X core team for the next few weeks!
Thanks to Karl Kraft for loan of a video camera to take the shot.


Karl worked on a Hollerith Card Reader (remember "Do not Fold, Spindle or Mutilate!") to solve that nagging problem of how to read all those old cards - but didn't get finished in time - he was laboriously using an exacto knife to cut each bit out! Ken didn't quite finish his late-started InputManager hack which made views fill with the user's background texture creating a semi-transparent effect.

In closing I'd encourage all Cocoa developers to attend next year -- help create the new Macintosh Dev community!

Copyright 1999
Andrew C. Stone. All Rights Reserved.
Additional material and image by mmalcolm crawford