|
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.
Warning: include(/home/cust10011/www/site001/includes-mactech/includefiles/mt_footer.inc) [function.include]: failed to open stream: No such file or directory in /home/cust10011/www/site001_files/staticcontent/articles/mactech/Vol.21/21.09/ADHOC2005/index.html on line 264
Warning: include() [function.include]: Failed opening '/home/cust10011/www/site001/includes-mactech/includefiles/mt_footer.inc' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/cust10011/www/site001_files/staticcontent/articles/mactech/Vol.21/21.09/ADHOC2005/index.html on line 264