Well, ADHOC 2005 went really really great. I got back yesterday, but I participated in the more traditional sense of ADHOC/MacHack tradition by only logging in about 16 hours of sleep between Thursday and Sunday.
I arrived in Dearborne*, just slightly outside of Detroit, on Wednesday evening about 8:00. I checked into the hotel, set up my Mac Mini in my room, and registered for the conference. I found Michael Dautermann, the guy in charge of PR this year, and coincidentally he hadn’t eaten yet either. While waiting to head out to find something to eat, I talked with a couple of people from Metrowerks (also an Austin company), nothing too serious, just being friendly. At one point, one of them asked, “Are you hiring?”… More on why someone would ask that in a bit.
Michael and I went out, and he had a middle-eastern restaurant in mind (he’s originally from the area), and I had to concur, it was excellent food for under $10 a plate. After dinner, there was only a little bit of time before we found out that there was pizza that evening, also. Oops!
The pizza that ADHOC gets is always great. I don’t even know which restaurant it comes from, but it’s a deep-dish style, rectangular pizza that is just absolutely delightful. I had a couple squares as we headed in to listen to Jordan Hubbard talk.
Jordan is the co-founder of the FreeBSD project. He also developed large parts of the basis of the FreeBSDPorts project. After 10.0 developer preview 4 came out, Jordan bought a Mac and loved it. In response to this, the audience was in shock. How could someone love a pre-release version of OS X? Simple: he loves UNIX, and even at 10.0dp4, he could tell that it was one of the better done GUIs atop of UNIX before.
Jordan was very entertaining. For some great quotes, check out Avi Drissman’s blog entry. I had the pleasure of talking with Jordan later in the conference, as he hunted me down to help him install Quesa to check out RB3D. Since it sounded like he was just wanting to mess around with 3D, didn’t have any models or such, I also pointed him to Asher Dunn’s OpenGL library.
In fact, one of the great things about handing out free REALbasic licenses was that instead of feeling sheepish about bringing REALbasic up in conversations that were centered around other products, I felt just fine because everyone could try it free of charge. I was sought out this year to help people, answer questions, and more.
Anyways, back to the keynote. It ended at about 2:00 AM in traditional MacHack/ADHOC fashion. However, Jordan then started the Q&A portion, which drilled from everything about DarwinPorts and security to HyperCard. Yes… HyperCard. People were getting a little emotional for 3:00 in the morning, giving Jordan and Keith Stattenfield (another Apple engineer, who was sitting in the front row at the time) an incredibly hard time for not open-sourcing HyperCard. They did a great job not being too defensive about the fact that it wasn’t them that made that decision. But, in reality, a good point was made that Jordan agreed to: when end-of-lifing a product from this point on, there should be an effort made to determine if the project is a good candidate for opensourcing.
At around 3:30 in the morning, I called it a night.
I was up at 9:00, preparing slides for my afternoon talk about the Intel switch. I had spent several days constructing my slides before the conference, but for some reason they weren’t opening up anymore. I still had my outline, thankfully, so I spent several hours reconstructing the slides. I went downstairs, did some scheduling updates (which included postponing my second Intel session), and had lunch. I sat at the table with Keith Stattenfield, Andy Ihnatko, and Scott Knaster. While the conversation focused a lot on comic books, it’s fun to see these guys get together. They’re just hilarious!
I had to withdraw from the table early, unfortunately, to go set up my Mac Mini for my “Supporting Intel Macs: the easy stuff” session. A lot of people showed up, and I felt it went really well. I know several people enjoyed it, as in passing several times I was told, “Great session.”
The rest of the afternoon I spent socializing and programming. During the course of the evening, I answered questions about REALbasic, pondered what my showcase entry would be, and pondered if and when I should recreate slides for my “Supporting Intel Macs: the nitty-gritty stuff” session. I had covered a lot more than I had expected in the easy stuff session, so I didn’t know if slides would be as beneficial as an interactive code-as-we-go session.
At 11:30′ish, more pizza was delivered. Good stuff as usual, and we wandered in to hear Andy Ihnatko’s speech. I’ve never heard him speak except at the table earlier that day, but it was downright hilarious. The keynote lasted until about 2:30ish, but the Q&A (in this case, general bantering between audience and Andy) lasted much longer, with me giving up on hearing the last of it at around 4:00 am, since I had to give another session in 6 hours.
One thing that was pretty cool was that Andy answered a question by drawing a connection to REALbasic. He loved the product when he was able to rewrite his blogging software in it, decide to try it on Windows by clicking a box, and have it work straight away. It’s always fun to see the product you work on every day being mentioned all over the place.
After getting back to my room at 4:00 am, I decided perhaps a great session idea would be to write a fractal generator that loaded and stored information to files, and then optimize it for Altivec and then SSE2. At 5:30, I decided that project was a bit more ambitious than I’d wanted to do, and Intel’s download site for their SSE2 guide wasn’t working properly for me. So, my eyelids won the war of sleep for a few hours.
At about 9:00, I was back up again, and rethought what I should do. I decided I would go forth with an example that involved reading and writing files, doing some number crunching on pointers, and a few other practices that would exhibit some gotchas in different ways. At 9:50, I was downstairs with my Mac Mini, Linux Laptop, and various accessories to find that my room wasn’t set up yet, and there were really only 5 or so people in the atrium (which was understandable due to the late keynote). I finally found someone to unlock the door that had the projectors, set it up, grabbed a bagel, and presented to a whopping 10 people to start with. More people wandered in, but I deviated from my plan. Since the audience was small enough, I simply opened it up to Q&A. I knew some of the people in there, and others had already asked me a few questions the night before, so I had a good idea that most of them weren’t worried about much. So, the people that had remaining questions were able to get them out, and I think it definitely benefited those people. Plus, due to starting late, it was nice to have my session end on time.
I stayed in that room and watched an excellent presentation on Dashboard and the HTML/CSS extensions to go with it. Very informative, and it was something I hadn’t had time to learn about yet. Now I have.
I ate lunch, and after lunch attended a session about OpenGL on the Mac. I knew a lot of the material, but I did learn a bit, and I also made a great contact. The presenter was a former employee of SGI, has worked with OpenGL for a long time, and is working on a book due out later this year about OpenGL on the Mac. He and I later sat down to try to hack the Mac OS X window server, but we unfortunately ran out of time before we figured out how to inject ourselves into the rendering phase for the display. We agreed to figure it out next year, and he parted his ways to go to SIGGRAPH.
So, there I was, 6:30 PM, 5 and a half hours to the showcase, and no idea what to do. Finally, Brian Geiger invited me to hack together an idea that Andy I. presented in his keynote. Having no better ideas, I did it. I’ll explain more on it in a future post, once I can get a screenshot and everything.
We completed the entire hack, involving a dylib, injector for that dylib (based on Mach_*), Applescripts to gather information, and a REALbasic application to display information.
The showcase went well, and there were some great entries. I don’t really care to describe them all, hoping that someone else will
Ours demoed pretty well, and I thought it was quite exceptional for less than 5 hours working on it.
Saturday was filled with more great sessions, and in the afternoon, I presented my session, “Write a Cross-Platform Game in Two Hours.” I wrote most of it in two hours, but lacked a few finishing touches to tie all the components together. So, with about 20 minutes left, I opened up the existing project, showed them the parts, explained them, then invited an attendee to play against me. We ended just a few minutes before the awards banquet.
The awards banquet had some good food, good stories at the table, and an entertaining awards ceremony. Our hack didn’t win any special prizes, but we did get a towel with ADHOC 2005 embroidered on it (the theme was Don’t Panic, which was from the Hitchhiker’s Guide to the Galaxy — the connection is there for people who have read the book).
Afterwards, I helped Jordan get his 3D working, and then we drove to the movie theatre to watch the annual bad movie. This year’s was Stealth. Surprisingly, it wasn’t as bad as I thought. However, that’s not to say it was good. We were laughing so much during the “serious” parts of the movie, that at one point a local yelled, “Shut the hell up, you crazies!” That didn’t really stop the majority of the group.
After we got back to the hotel, we had the traditional ice cream social, and then gathered around Keith Stattenfield to hear “Keith Explains!” Unfortunately, I can’t link to information about his local TV show, because it seems to be showing the default Mac OS X server web page (Update: He has fixed his webpage. You can view it at http://www.keithexplains.com/). However, I can assure you that listening to him and other ADHOC’ers pick apart a movie is quite entertaining. This year, it consisted of:
Keith Stattenfield- Giving original insights, stepping through the movie
Adam Engst: Chiming in when we have wandered off on a side topic for a few minutes too long.
Everyone else: Discussing with Keith about meaning behind the movie, or noting other oversights in the story/science/technology of the movie. Also, quickly moving said discussions into slightly related territory, over and over, until we almost forget where we were in the movie.
This movie was so bad that after nearly 4 hours of explaining it, we had only gotten about a third of the way through. Yes, there were that many strange or unexplainable events in the movie I finally called it an evening, and bid adieu to everyone.
I slept for about 4 hours, and started packing my bags. I was down in the lobby at about 9:30, checking out, and hoping to catch a ride to the airport. I succeeded when Scott Ribe pulled around the front of the building in his rental car. Scott, if you read this, thanks
Back in Austin, I fell asleep, woke up and talked to friends online, and then fell asleep again. I still have more to catch up on. All in all, it was a fun and very worthwhile experience for me, as I learned things, met great people, and extended friendships with those I had already met.
* It was discovered that technically the Holiday Inn is in Detroit, but only by 1/4 of a mile or so.