oreilly.comSafari Books Online.Conferences.


AddThis Social Bookmark Button

The Hitchhiker's Guide to ADHOC

by Brian Geiger

I first went to the Advanced Developer's Hands-On Conference (called MacHack at the time) two years ago. I'll let you in on a secret: I'm not an advanced developer. Oh, good heavens, no. There was a time, a decade or so ago, when I dreamed of becoming such a thing, to develop algorithms and programs the likes of which the world had never seen before. With my passing, the sum total of programming ability on the planet would go down by an appreciable fraction of a percent, I used to dream. It was then I first decided to go to MacHack.

Back in the early 90s, when possibilities seemed endless and I accessed the internet through a Unix shell account provided by my university's engineering department, I got a book entitled Late Night With MacHack. That was the first time I learned about the magic of that little conference, with its concentration of Big Brains and Macintosh computers. The book spoke of many things, traditions that I can't really recall, and probably important bits of Macintosh history, plus numerous anecdotes and the like. Solid, riveting stuff, I feel certain. And still--I can't tell you what most of it was. No, most of the memories are gone, like yesterday's pizza. (For those of you who take more than a day to finish off any arbitrary amount of pizza, I welcome you to make your own analogy.)

I did take two important tidbits away from the book, however. The first was that only the best programmers went to MacHack. Only. The. Best. I told my roommate, Conrad, that we should go to this, but he said, "Pfft. We're not good enough for that." As he was a far better programmer than me, well, I was more than a little crushed. So I sequestered that dream underneath my pillow, or perhaps in a shoebox, I can't really recall. I sequestered it, and went about my life making video games for forgotten platforms or of licensed characters.

Related Reading

Mac OS X Tiger for Unix Geeks
By Brian Jepson, Ernest E. Rothman

The second thing I took away from the book was the contest. Oh, the contest. Imagine, if you dare: the conference is three days long. The first two days, you go to sessions and meet people and eat pizza and listen to Important People talk at ungodly hours of the morning, sure. I mean, that's relatively normal conference fare. Everything you're doing, though, is not really to help you out at work, or to learn this new technique to make your shareware game better, or to get a contact for a job, or what have you. Nope. Everything you're doing at the conference is geared, directly or indirectly, at helping you finish that program that you started on day one of the conference and have to finish before the end of day two of the conference.

Two days to program something that works, or seems to work. Start to finish. Oh, sure, you can use your code base, endless amounts of code snippets you have lying around, or some project you pulled off of O'Reilly's site (as I did last year). That's encouraged. And nobody checks to make sure you didn't start programming this beforehand, but there's no real reason to cheat. I mean, it's not like you're going to win anything that's worth money. No, the reason for the Showcase is to demonstrate, to yourself and your peers, what you can do when the pressure is on.

My first year, I decided that I would do an AppleScript-based hack, because I primarily use AppleScript these days. After all, though it's a bit hinky in the syntax department, AppleScript is made for cleverness. That's what the Showcase is all about, really: being clever. So, with the invaluable help of Stephen Swift, I made Script Adventure (or Scripted Venture). The pun came about because I told the name to Stephen, and he misheard, but both were appropriate, so we used one name in some places and the other in the rest of the places. It was a text adventure game written entirely in AppleScript. Which is mildly interesting, but not all that exciting. No, the part that I loved was the way you made a game.

If you've ever seen Sal Soghoian talk about AppleScript, you've probably seen how he likes to write things. He made an iDVD script to allow you to automate the creation of a DVD by creating the menu structure of the DVD as folders in the Finder, and dropping the resources into the folders. If you wanted movies on that level, you dropped in movies. If you wanted a background picture, you dropped it in. You built the DVD in the Finder, ran the script, and out would pop a fully functional DVD.

So I did the same thing for Scripted Venture. You wanted a room, you made a folder with the room name. You want that room to go somewhere else, you put another folder inside of that room, with the name of the folder the same as the name of the exit (such as South). If you need to go to a room that's already been made, you make an alias to that folder. For the description of the room, make a text file named Description.txt with whatever you want. Finally, and this is the best bit, if you want an object, you just make in a script. You need a gun? Make a gun script, place it in the folder, and give it look, shoot, and load functions. Make sure you put something useful in each of those functions, and drop it in the room. It would all integrate, and it would all work as a state machine.

That was good fun, although only a few people appreciated it, mostly (I tell myself) because I focused more on the programming than the presentation. Yeah, that must be it. The important thing, though, was that I did it. Me, the so-so programmer who really hadn't done any serious programming in five years, could, with the help of the people at the conference, build something quite clever in two days. To me, that is what ADHOC is about.

ADHOC is about giving yourself a challenge that is just for you. You're not going to be paid for it, unless you break one of the traditions and make it useful, and then charge for it later. I don't think it would be the first time. The prize you get, I can assure you, will be unimpressive to your friends and family. Ask Adam Engst. No, this is a goal that you set for yourself, to see how clever you can be. We'll help, of course. If there's anyone in the room who knows more about what you're doing than you do (and that is not unlikely, given that there really are a lot of smart people at ADHOC), they'll be happy, or at least willing, to stop work on their hack to answer your questions and help debug your code.

The amazing thing is finding out just how far you can go in such a short amount of time with the right people around you and the right motivation. I won't say it'll change your life, because that would sound kinda dumb. I will say that it's an unbelievable amount of fun, and if you've never done it before, you really should try it.

ADHOC runs from July 27-31 in Dearborn, Michigan.

Brian Geiger is the chair of this year's ADHOC conference.

Return to the Mac DevCenter