Adhoc 2005
Volume Number: 21 (2005)
Issue Number: 9
Column Tag: Programming
Adhoc 2005
A Much Loved Mac Institution Comes to An End(?)
by Ravi Singh
The Advanced Developers Hands On Conference, formerly known as MacHack, was held in Dearborn,
Michigan on July 27. The focus of the conference is to get developers sharing their expertise (and
some rarely documented programming techniques) with other developers. Given the incredibly diverse
backgrounds of the attendees, this interaction usually leads to some amazing collaborations in an
intense three-day period.
Don't Panic !
This year's Adhoc theme was "Don't Panic", in reference to the upcoming change from IBM/Moto to
Intel processors. I didn't really notice any sort of panic at the conference and this theme may
have been misplaced. The Adhoc developers and attendees are the types that are more excited about
the potential benefits of the change than worried about the unknown. There were a few sample
Intel-based PowerMacs at the conference. I was amazed at the sparseness of these machines. There
were no fans and no liquid cooling system. All that was inside was a single motherboard and a hard
drive. The rest of the G5 case was empty! I sensed a great deal of excitement from the developers
who got a chance to experiment with these machines.
I think the "Don't Panic" theme had a dual meaning, and that second message was a way to say
goodbye. It was announced that this would be the last Adhoc/MacHack conference after 20 years. This
news will likely shake those who have attended past conferences. This is a big loss to all
MacHack/Adhoc devotees. I was proud to have had the chance to experience this conference and will be
comparing all future conferences to this one.
I asked Carol Lynn, the organizer of the conference, to comment on this final chapter of a
legendary Mac story. She wrote:
"In the depths of time (1985) MacHack was conceived by Gavin Eadie at the University of
Michigan's Computer Aided Engineering Network (CAEN) as a way to disseminate information to the
academic community on a new technology called the "Macintosh computer." It first ran from Sunday,
July 13 to Wednesday, July 16, 1986. The burning issue of the day was whether or not the
Hierarchical File Structure was "a good idea". It was restructured to appeal to developers by Dave
Feldt, value added with a hack show sponsored by the MacHax Group, and ownership transferred to
Expotech, Inc in 1987.
Twenty times developers met to exchange ideas, hone their programming
skills, and drink too much caffeine. They survived tornados, heat waves, blown fuses, German Chinese
food, hotel changes, network crashes, and name changes. They reveled in the free exchange of much
useful information in the quest to become better programmers through the intense, hands-on
experience that was MacHack. From the first animated Finder icons to "MegaMan Effects", from
"NetBunnies" to "interface unbuilders" and "unsummarize functions", the code from MacHack was always
at the (b)leading edge.
Alas, all good things come to an end. Aimee Moran, who masterminded
the first MacHack for U of M before there was an Expotech, left in 1994. Expotech will be no more
by the end of 2005.
MacHack was a unique experience made possible by the efforts of
dedicated committee members and a series of excellent chairmen (and women). To everyone who made
MacHack/ADHOC possible by devoting time to the sessions, writing papers, building hacks or
attending, I say, in keeping with the theme of the 20th ADHOC/MacHack, "so long, and thanks for all
the fish."
Carol Lynn
Conference Manager
ADHOC/MacHack 20"
Keynotes
As is usual for Adhoc, the keynotes started at midnight every night. I got to Dearborn late and
thought I would just stop in to see if anybody was actually waiting for a keynote at 12:01 AM. Sure
enough, there was a packed room of Mac programming fanatics. After 2 nights of keynotes, I realized
the genius of this late night session. It actually works out nicely as it gives you time to rest
from the days sessions and sit back with a diet coke and enjoy the evening. These keynotes are not
endless marketing blather. They were funny, interesting , and full of insights that could lead to
any number of successful products. Mostly, they were from the heart.
The first key note was by Jordan Hubbard from Apple, a co-founding member of the FreeBSD project.
He described his journey from FreeBSD and other Unix environments to the OS X platform. In a funny
and interesting story, he described how Terminal almost did not get published. The thinking was that
the terminal application would be too confusing for the average user. Jordan also described some of
the problems with the current OS X setup, where a user by default is given admin privileges, and has
root access. He described all the potential pitfalls that this created and why it is not done on
other Unix systems. He also mentioned that the current system of having the user just click on the
default button assignment is creating a problem because it is teaching users not to think about the
information presented, they just click their way through. He explained that the default carriage
return has turned Grandma into a "click monkey".
Part of his talk described how difficult it was to get the Darwin sources compiled and working.
Internally, Apple uses the X Build System to build Darwin and this is not publicly available. Jordan
then demoed DarwinBuild, a tool that will automatically download pre-built binaries of any
subprojects needed in a compilation to allow developers to build Darwin with less pain.
He also brought up this interesting point. OS X has incorporated many Open Source projects at its
core. Unfortunately, these projects are growing/changing at such a fast pace that it may be
unsustainable to keep up with them. He proposed a different system core layout. Currently, all
projects are at the core. By placing all projects at this level, it takes longer to release a
project. His proposal was for an OS X Core level, and an optional base of tested Open Source
projects outside this core, but accepted and tested by Apple and, finally, a third ring of
unsupported, untested and completely optional projects.
Jordon also described the efforts Apple was making to improve the user experience by adding a
versioning and journaling file scheme. If a user copied a Word document over another document, for
example, the overwritten document could be recovered and not lost completely. Their research is also
focused on developing an improved packaging format that has the ability to determine what
dependencies the files may contain, the ability to rollback installations, interoperability with
third party tools, and conflict detection. His final comments were on the ambiguity of makefiles and
how difficult it was to create an intelligent, makefile data mining tool. He proposed a very clean
and elegant XML solution.
Andy Ihnatko, a technology writer for the Chicago Sun-Times, had the second night's Keynote. Part
stand-up comedian and philosopher, Andy's keynote varied from interesting insights on the change to
the Intel platform, to weird facts on every major science fiction franchise. He really put the Intel
change into perspective. He asked, "What, exactly, was bad with potentially having cheaper and
faster Macs?" He made some wonderful points about how the Intel move could provide Apple with the
ability to build improved PowerBooks that ran both longer and cooler. He also described all the
trouble that he went through with early versions of Tiger and the creation of his XCode 2.0
programming book. The version of the tools and operating system were so unstable that he got calls
from other authors asking for his help in getting the system to work enough for them to finish their
books. His talk was balanced and also brought up some ideas that he had on an improved interface and
the window clutter apparent on any OS X user's desktop when running multiple applications.
News
In the "Bash Metrowerks" session, it was revealed that CodeWarrior 10 would be the last version
of the compiler for the Mac platform. They had previously sold their Intel and Java compilers to
Nokia and, therefore, are unable to legally produce a version of CodeWarrior that can output Fat
Binaries. The representatives also revealed that they are planning on open sourcing PowerPlant for
the Mac. They did state that it would not be possible to open source the IDE.
The saddest news of this session was that the well loved and extremely gracious and kind
"Metrowerks Ron" would stop supporting the Mac compiler publicly on August 1 , 2005, as his
responsibilities have changed. Members of CodeWarrior Mac user groups will feel this loss greatly,
as Ron answered the questions of thousands of developers so often and so quickly that a myth
developed that "Metrowerks Ron" was actually an alias to a team of developers. I wondered, too,
until I actually got to meet the man that helped so many, personally responding to all email queries
sent to prez@metrowerks.com, and got the chance to share a
combined thank you.
Sessions and Papers
Some of the most popular sessions focused on the business side of development. One great session
offered advice and help for freelance software developers on how to handle billing, money management
and difficult clients. Two of the most popular sessions were on getting a job at Apple and Adhoc
conference sponsor Google. The most interesting point that came from these sessions is how important
it is to try and have someone at these companies walk your resume to human resources or directly to
the hiring manager. There is so much noise generated with "too good to be true" resumes that human
resources has difficulty sorting the good and bad in a reasonable time.
One great reason to have attended the conference was that Google recognized it as a fertile
recruiting ground and as a way for them to find developers interested in making the best software
possible. In fact, Google even flew a very informative and straightforward recruiter from Los
Angeles to Dearborn for one day to address the attendees. An interesting point he made was Google's
interest in finding an ethnically diversified work force, and their push to hire more women to
balance development viewpoints.
Most attendees were blown away by the array of amenities offered by Google, including three free
meals a day from a gourmet kitchen, laundry service, a pet-friendly work environment, and on campus
swimming pool. However, these are nothing as compared to the most important item offered to
engineers. The ability and requirement to spend 20% of your time working on different projects
including those that are not related to your work and the ability to easily switch between differing
engineering groups that interest the developer. Scott Knaster , a well known Mac developer and
Google employee, presented a session on using the Google Map API's. He demonstrated some of the
examples in development, such as a "hot or not" modification were a viewer would vote on the
attractiveness of another person by viewing a map with pushpins showing each person. There was a
great proof of concept demo that a developer showed of his cat walking around on a picture of the
Apple campus. Clicking on the cat would bring up a Quicktime video of the cat singing. Though this
example was mocked up, it did show some of the great potential of the Google maps API.
There were two sessions presented on a Mac specific controller board called the bTop from
Perfectly Scientific, Inc. The bTop board manufacturers gave a free board to any developer willing
to use it in their hack submission. The board is priced at $149.00 and is capable of using full
speed USB. George Lawrence used the board to build a Mac Mini robot. The bTop board is specifically
made for OS X developers and comes with sample applications written in Cocoa, the source code to the
firmware, a USB cable and jumpers, and a recipe book of solutions.
REAL Software was a sponsor of the conference and they gave a copy of the REALbasic 2005 Pro
edition to each conference attendee. REAL gave a great introductory session on how to create cross
platform games in REALbasic and dealt with some of the issues of debugging across different machines
and the use of the SuperSprite control.
REAL Software was a sponsor of the conference and they gave a copy of the REALbasic 2005 Pro
edition to each conference attendee. REAL gave a great introductory session on how to create cross
platform games in REALbasic and dealt with some of the issues of debugging across different machines
and the use of the SuperSprite control.
There were other sessions focused on developer self improvement. "Getting What You Want" was an
interesting session by Maurita Plouff on how to take an idea from concept to completion. She
combined her sales knowledge and the knowledge of the pitfalls that most developers encounter in
failing to identify their target to provide advice on how to improve the chances of getting and
funding an idea. Similarly, Adam Engst presented a session on how to best use and access the press
to get attention for your product. There were other sessions on creating Effective Meetings ,
Contracting , and Selling ShareWare.
Hacks
An Adhoc hack is simply an application or tool written in any language that shows off something
cool. The beloved duo of Scott Knaster and Andy Ihnatko hosted the midnight Friday hack contest.
Their humor , sarcasm and Twinkie throwing had the crowd constantly in an uproar . This is not an
easy task for a room of developers that have been coding through the previous night and day. It
ended at 5:30 AM in the morning after 3 hours of hacks and 2 hours of some of the funniest,
strangest, and sometimes weirdest videos and funny overseas advertisements.
Some of the more interesting hacks used the bTop board to control different hardware devices. A
great hack was the MacMini-iSight based robot from George Lawrence. It was built as an example for
universities and researchers to borrow and experiment with. The robot followed the researcher around
tracking on a dark green tape band tied around the researchers leg. He then used an iSight camera
and the processing power of the Mac Mini for image recognition, all mounted in a mobile robot
chassis. The bTop was used in a hack from Allon Stern to do all the video switching of the various
monitors and displays used in the hack session. The bTop was also used to take a Google strobing
"kotchie light" (a pin with the Google letters that Google gave away) and sync it with a dancing
image on the Google web site.
There were several hacks that manipulated Dashboard. A hack from Andrew Turner that allowed
Dashboard widgets to pop up as a screen saver was a suggestion from Andy's keynote speech. In a
similar vein, there was a useful hack to drag a Dashboard widget to the desktop, run the widget, and
hover on the desktop outside of the Dashboard application. The final Dashboard-themed hack dressed
each widget in a playing card skin and the user had to guess which card their widget was under.
There were several hacks that manipulated the desktop. One hack replaced the system panic dialog
with a user specified image. The interesting part of this hack was that the developer could not
easily get the system to enter into a panic and had to write a panic kernel extension to invoke the
critical error. Another hack by Adam Goldstein modified the fast user switching 3D rotation with a
somewhat slower 6 sided cube that rotated freely.
WWDC vs. Adhoc
I attended both the WWDC and the Adhoc conference and each has their own unique qualities. The
Adhoc conference was organized and fueled by kind and gracious individuals each donating their
specific talents. Adhoc was more a conference by developers for developers. Attendees all share
their knowledge and combine their expertise to develop new ideas. WWDC is more about getting the
newest information on new technologies without as much two-way interaction. The cost was relatively
cheap for a three-day conference with so much interesting content. The Adhoc volunteers were
amazingly gracious and well organized. The wonderful thing about Adhoc was that the people who
presented each session or paper were obviously in love with their topic. It was fantastic to have
students, experts, and professional developers sharing their knowledge and helping each other with
the topics that they are most interested in. WWDC felt like a week long tutorial. Adhoc felt like I
was working at an exciting startup where all my ideas and the collaboration of other developers
could turn into something great.
I was a little disappointed that Apple did not support the conference by providing funds or
officially sending engineers to present. There may have been some criticism of Apple at past
MacHack/Adhoc conferences but the group that attended this Adhoc were diehard Mac OS X fanatics and
each criticism was intended to make Apple products better.
We as developers have lost a great thing, and having experienced this conference firsthand, it
will be hard to do anything but 'panic' at the loss of such a unique experience. Every attendee
was both there to learn and teach. Every attendee was a volunteer helping every other attendee with
advice and insight. There were some fairly famous Apple development names, yet they never felt the
need to promote themselves at Adhoc. I doubt I will ever experience a conference like this again and
I am thankful that I was given the opportunity to see the finale.
Ravi Singh is a contract programmer specializing in plug-in development and
graphics, sound, and image processing applications for OSX and Win32 environments. His company,
RavWare Software, has authored dozens of ActiveX controls and plug-ins for Director, Freehand,
Photoshop, and other applications. Ravi has written articles and reviews for Visual Developer
magazine and presented at several development conferences.