MacHack 14 in Review
Volume Number: 15 (1999)
Issue Number: 9
Column Tag: Conference Report
MacHack 14 in Review
by Andrew Downs
The World's Best Redeye Deal
Introduction
The following is an attempt to share my MacHack experience. If you were there, you probably had quite a different experience. If you did not attend, I hope to see you next year. Maybe this article, in conjunction with other MacHack materials available on the web, will convince you to give it a try.
This was only my second MacHack conference, but I noticed a tremendous difference: the number of attendees was much larger than last year. No doubt this was due in part to renewed optimism and interest in the Mac OS platform. I also think the increased sponsorship and additional support for students attracted a number of attendees who otherwise might not have known about the conference, or would have had to forego it because of cost.
What I Learned
MacHack is not a spectator sport: it is definitely more fun if you participate. Here is a quick indicator:
Last year I presented a paper and attended many of the sessions. I had a good time.
This year, I presented a paper, co-presented a session, entered a hack, and attended some sessions. Plus I talked with a lot of the developers I met at last year's conference, and made some new friends. I had a GREAT time!
What I Should Have learned
For the second year, I traveled with about sixty lbs. of books. For the second year, I opened only one of them during the entire conference.
There's no need to travel with many, if any, of your programming references, unless they're obscure. Copies of Inside Macintosh are available in the Machine Room during the conference, and reference CDs can sometimes be found in hard form or mountable via the network. And the ever-growing set of web-based Mac documentation is certainly available, as are many experts who store a lot of programming knowledge in their heads (and are willing to share).
If you really need something in hardcopy, you may be able find it at one of the local bookstores, if you care to leave the friendly confines of the hotel.
Sessions I Actually Attended
Here are the sessions and presentations I attended during the conference, along with a few anecdotes.
About This MacHack
This is always the first MacHack session. It is presented by one or more of the organizers: this year, Michael Bentley and Warren Magnus did the honors. They gave an overview of what to expect during the conference, etiquette (!), who the sponsors were, etc.
So why would a returning attendee attend the first-timers' session? Good question. Originally I wanted to spread some hack ideas around. But I also found it useful in seeing just how many new folks there were, and what items did not make it into the pre-conference press releases.
The biggest piece of news during this session was that the local Jolt Cola distributor was no longer in business, implying a local blackout of many programmers' favored caffeine-saturated drink. Fortunately, the hotel staff went the extra mile (well, maybe ten miles) and found a few hundred remaining bottles. They also found a stash of the new citrus-flavored Jolt. Disaster averted.
Keynote
Marshall Vale, the conference chair, started things off by stating that there were nearly twice as many attendees and students as last year. He also mentioned the "Yoot" (youth) hack contest, encouraging the younger attendees to try their hand at hacking. Some of the yoots have been attending for a number of years, and come up with very imaginative hack ideas.
More good news: the network actually reached down into the lower atrium of the hotel. This turned out to be a good thing, as I sometimes had to go that far to find an open network port. My personal thanks to those who brought, and shared, their own ethernet hubs.
Andy Ihnatko presented the keynote address, which he themed "Dink Thifferent". Andy is also the self-proclaimed "America's 42nd most-beloved industry personality." A lot of Andy's presentation has a visual element, and it is nearly impossible to capture anything other than a shade of his humor in this column. Here are a few items:
- His Steve Jobs impersonation: "Several times people have asked me to assume the position."
- Regarding his run-ins with various magazine editors: "Editors are a cowardly and superstitious lot."
- Andy is a serious hardware hacker. His background includes a lot of Apple II hardware and OS hacking, which apparently is quite common behavior among Apple II lovers.
- Andy devised a contraption to keep the landlord's cat away from his desk: a Darth Maul action figure, mounted on wheels, with a motion sensor that enables the figure to follow the source of movement (e.g. the cat).
- He demoed an AppleScript controlling a Darth Vader figure (I think it was originally one of those coin-activated banks) via a Beehive ADB I/O box.
- Andy also announced the "240 Square" contest, where all of a program's visual elements must fit into a 240x240 pixel space. The prize was a Boston Computer Society t-shirt with an Apple logo.
AltiVec
I was almost on time for this session; I wish I had been. Doug Clarke presented an informative overview of this exciting new technology: the incorporation of vector processing into the new PowerPC G4 chips. He even included sample code to illustrate the additions to the processing model. During the remainder of the conference, Doug helped hackers in the Machine Room create their AltiVec hacks. Doug (and co-hacker Ben Martz) also won the 240 Square contest mentioned above.
AltiVec appears to be nearly as great a technological leap as the PowerPC was originally. (See MacTech 7/99 for an AltiVec overview by Tom Thompson, and look for more AltiVec articles in the future.)
Palm OS
I attended this one in part because I have been talking about Palm development with a colleague for the past few months. I had a few questions regarding Palm development that I couldn't find answers to in the one-and-only Palm programming book on the market (at that time).
Like all things MacHack, this turned out to be extremely interesting and to hold a few gems. The Palm engineers (Steve Lemke and Jesse Donaldson) gave an overview of the Palm product line, Palm internals, and the development environment.
The Palm family is based on a 68K chip derivative. This means that if you drop into a low-level debugger you are likely to see some familiar territory! And apparently of the two original Palm engineers, one was a Mac guy. Its pedigree is pretty obvious once you start looking at the API. The Palm OS is written entirely on the Mac.
Q&A at the end of the session was informative. We talked about events, launching apps, memory (the usable stack size is only ~2.5KB, yikes!), and such. Did you know that Palm apps execute from their fixed storage location? Did you know that you cannot disable or gray-out a Palm menu item?
The engineers also handed out the pieces needed to make clear cases for Pilots. I didn't understand the hoopla until I called a coworker and mentioned it. Turns out these clear cases are a hot commodity.
Palm was interested in attendees hacking the Palm OS. They even made available the required add-ons for CodeWarrior Pro 4 to enable you to build Palm apps. I found this offer enticing, and started thinking about a potential hack.
Reverse Engineering
This was great fun! A chance to hear about the making of Virtual GameStation, and see it demoed. The speaker, Eric Traut, was very entertaining. Plus, he spoke to the hearts of most attendees. Although much of the initial portion of this session was informative (i.e. legal info), it was never boring. Eric later discussed the process, such as how to conduct the necessary research, and also tools and emulators that help make the process easier.
Many developers may not know this, but there have actually been a number of reverse engineering cases besides Virtual GameStation. These include the PC BIOS (Compaq v. IBM), i386 clones (AMD v. Intel), Sega Genesis, and SoundBlaster clones (Creative Labs v. others).
Resume Workshop
I missed most of this one due to session overlap. It appeared to be much better attended than last year. It always helps to have your resume up-to-date, and the folks from Scientific Placement provided tips on how to improve your presentation. Plus, there were several companies recruiting at the conference this year, providing an extra incentive to attend this session.
Watching the File System
This was my paper presentation, so I won't comment on it specifically. But generally, if you enjoy reading or writing MacTech articles, you will enjoy doing the same with MacHack papers. Paper authors do not pay the conference fee, which is a pretty sweet deal.
Where did that source code go?
Apparently a virus infected many of the computers in the Machine Room. The Disinfectant squad (including John Norstad himself) went into action to quash the problem. But at around 5am, while downloading an old version of the source from NU, John accidentally deleted it. Not to worry: Peter Lewis located the offending piece of code and they wrote a binary patch for Disinfectant.
Palm Debugging
This, the second of the Palm sessions, focused on tools and techniques to aid in ridding Palm apps of those hard-to-find bugs. For example, the Palm Debugger allows source-level debugging, and also shows the disassembled code, call stack, etc. It also supports a console with a MacsBug-like syntax. The Palm OS Emulator (POSE) allows you to perform high-level testing against different ROM images without using a physical Palm device. Gremlins are an automated test tool: they will bang on your app's GUI elements in a repeatable manner and see what happens (then you have to go in and repeat the process, breaking just before the offending test).
Of course, the program known as HackMaster got some attention. What a great name. In lieu of a Palm-endorsed approach to patching the OS, this program manages patches for you. As with Mac OS patches, anything goes, but the patches ('hacks') must follow a prescribed model, similar to a plug-in architecture. Since everything underneath is 68K (or nearly so), things like calling the original trap still have to happen.
B y this time I had finally settled on a hack idea. My goal was to write a Finder knockoff that ran on the Palm. What to call it? Eventually I settled on "P1 Preview: the world's smallest Finder implementation" in deference to the forthcoming Mac consumer portable.
Atomicity
This was Jonathan Rentzsch's paper dealing with the "Window of Death" in 68K and PPC programs. He illustrated the use of data structures that function atomically in a non-atomic world, using the right combination of machine instructions.
Jonathan and I later presented a session on FileWatcher, a product that can track changes made to the file system.
Hack Show
Okay, I missed most of the hacks because I was still working on mine. There is a photo on the conference CD which proves it. I almost didn't think I'd enter the contest, which started at midnight on Friday, but at around 2:30 in the morning a few people walked into the snack room (where I was working) and said "get in there and show it, it looks fine". To those who did this, thank you.
I staggered in for the last 45 minutes of the contest. Just about everything I saw was impressive considering the relatively short time spent on the programs. The audience gets tougher as the night drags on, so unless you've got a ringer, you should probably try to show your hack early. On the other hand, I didn't get booed off the stage, and I think I was the second to last person to present a hack. And it didn't completely work.
Awards Banquet
This was a lot of fun. Scott Boyd, Greg Marriott, Jon Kalb, Grant Neufeld, and a few others passed out awards for various hacks. Most of these items came from the offical MacHack awards supply store, Duke's Hardware. Plus there were a lot of freebies thrown to the audience.
Congratulations to Lisa Lippincott for winning the coveted Victor A-Trap award for her hack, "Unfinder".
Yours truly was awarded "Best Palm Hack", for P1 Preview. The prize: a Palm IIIx.
It's hard to go home empty-handed from MacHack. Not only during the banquet, but also during the various sessions, sponsors are tossing goodies to the audience. Of course, packing it for the trip home is up to you.
Movie
Many of us trekked out after the banquet to see the Austin Powers sequel, returning in the early a.m. for the ice cream social and ensuing all-night discussions in the atrium (and Machine Room). This is a great way to end the conference.
Sessions I Wish I'd Attended
The rest of them. As trite as that sounds, it's true. I missed OS X, C++, Mozilla, Java, QuickTime, and many others that I had hoped to attend when I first saw the session list.
There's so much cool stuff happening at once, you have to make some decisions about what to do at the conference. The number of sessions this year was greater than last year. I think the number of papers was about the same. It all adds up to a very full schedule, with lots of overlap between scheduled events.
As For The Rest Of The Story
So, what was I doing the rest of the time? Hacking! Trying to turn an idea into something semi-functional in less than 36 hours, using an API I hadn't tried before. I spent a day trying to make my hack work using what seemed to be the "approved" way, meaning the mainstream, high-level forms-based API from Palm. Later I found that there was no approval for what I was trying to do. I guess that's life on the edge.
The sick thing is that once I got P1 Preview limping along well-enough to demo, I kept working on it. In fact, I kept coding until I left for the airport Sunday morning at 6:45. At 5:00 that morning we found a bug in the Palm Debugger, which the Palm engineers then fixed. Nonstop programming.
Some may accuse me of bias, since the Palm gods/engineers smiled on me during the conference, but I find the Palm OS and accompanying API refreshingly small in this world of increasing software size. The Mac roots of the Palm are very obvious once you start figuring out how to write software for it. The primary dev tool is topnotch: CodeWarrior for Palm, of course.
MacTech would like to run some Palm articles in the future. If you have ideas and/or are interested in writing about the Palm OS, let us know.
Bring Your Own, Or...?
One decision you might want to make is whether to bring your own computer. PowerBooks of all models abound at the conference, and someone even brought their personal G3 mini-tower as well.
About two weeks before MacHack I purchased a PowerBook, my first CPU purchase since 1996. I was certainly looking forward to the faster performance. I also wanted some hacking flexibility. Plus, I wanted to do some polishing on my presentation at the conference.
Well, having a PowerBook turned out to be a blessing and a curse. A blessing because I could work where and when I wanted (my room at 11pm, the atrium at 3am, etc). A curse because I spent more time off by myself, working feverishly to stabilize and complete my hack. I missed out on some of the comaraderie.
And the Machine Room? It looked pretty well stocked this year, with many iMacs and G3 mini-towers, and perhaps a few boxes I didn't see. Whenever I looked in there were quite a few people, but usually a free machine or two. If you don't own your own computer, finding space in the Machine Room shouldn't be a problem.
URLs
Of course, the primary URL for all things MacHack is <http://www.machack.com/>. This is where you can find the session, paper, and hack information for this year and previous years. There is a post-conference press release describing the top five hacks. There is also a CD for sale containing the conference goodies.
Here are several URLs containing other attendees' conference summaries from previous years:
Conclusion
If you have not attended MacHack, try to go next year. Registrations are now being accepted. Check the conference website for more information. See you there!
Andrew Downs is a Technical Lead for Template Software in New Orleans, LA. With hurricane season approaching, it’s time for him to start taping the windows again. At other times, you can find him teaching his twin toddlers about planes, trains, and computers, interests that they all share (it must be genetic). You can reach him at andrew@downs.net.