Cocoa Camp 2010

This past weekend I traveled to Atlanta, GA to attend Cocoa Camp, an “un-conference” for Mac and iOS development, held at the Atlanta Contemporary Art Center. Intended to be an overnight trip, I flew from BWI to ATL on Friday morning and returned Saturday evening.

Content

I felt the content was a heterogenous mix of design-versus-coding, and beginner-to-intermediate. There were even a few general development-career-focused sessions.

Design

I’ll start with the positive. The design-related sessions were top-notch. I always enjoy hearing about others’ processes for designing their applications, especially when they talk about designing the UI first, then the architecture to match. Stephen Martin’s (@stephenmartin) presentation was particularly good. If I could pick one thing he said to pass on to any other Cocoa developer (Mac OS or iOS), it’s this: Interface Builder is not a design tool. Second would be (paraphrasing) “iteration, iteration, iteration.”

I gave a presentation at a NIAID developer meeting along these lines (design ahead of a single line of code) and even mentioned how much better my own design/development process was when I decided “Interface Builder is not a design tool,” and learned to sketch first, iterate out the trouble spots, move on to at least basic architecture, and only then move on to coding.

Technical

Regarding the technical sessions, I’ll be honest: I felt I got a lot more out of the design sessions. The technical sessions were a mixed bag, which is fine (some of what I had no interest in were quite popular to others), but the ones I was interested in were almost entirely beginner-level.

I had high hopes for the “Scalable Data Access using Operation Queues” session. I missed the first few minutes of the session but what I did catch was more like a basic introduction to NSOperation/NSOperationQueue. The session did not last long, but it was well-delivered (so I hope Greg Martin does not take this the wrong way).

The problem was the title. It led me to believe I’d see some awesome, modern data access (as in files-on-disk or database access) wizardry. The Q&A session afterward was insightful, and had I not been on the verge of heat stroke standing in the hottest room there, I might have contributed to the “how much is too much in an NSOperationQueue” discussion.

Perhaps the Cocoa Camp organizers can prevent this in the future by requesting a summary and making sure the titles are a little more precise before posting the session information. Even better, they could post the summaries themselves (which were not included on the schedule).

Career

Because there were no other design or technical sessions that were relevant to me late in the day, I attended Ryan Taylor’s session titled “Refactoring Yourself As A Developer.” I thought much of Ryan’s presentation was full of great suggestions, but again, it seemed to be aimed at younger developers just starting out in their career.

The first half was a gratifying laundry list of good practices I had already been employing myself (yay – I’m a “good” developer!), whereas the second half sounded to my experienced ears more like a career day speech to high school interns. That’s not meant as snark – again, I had no problem with the mixed-bag approach, even within the same session, as there were plenty of young (or older beginner) folks there.

Twitterfall

I thought the use of Twitterfall to track Twitter mentions of @cocoacamp and the #cocoacamp tag was a nice touch, though I wouldn’t be brave enough to leave my laptop perched atop a stack of stuff with that many people walking around. It was nice, however, to see others’ comments. I made a thoughtful contribution myself. Josh Johnson (@jnjosh), a Twitter friend, was there as well. It was great to meet him in person. I seem to be collecting friends from the Raleigh/Durham area, but I probably shouldn’t have taken Josh and Sal Conigliaro (@salconigliaro) out of their boxes so as to retain their value.

Criticism

I’ll say it: the conference had two glaring problems – traveling sound and insufferably hot air.

Sound Travels

The art center is one of those a nicely-remodeled factories done in the exposed-ductwork-brick-and-beam industrial style. It’s meant to be a contemporary art gallery. The pictures on the Cocoa Camp web site show how well the space works for that purpose. What they don’t show is how poorly it works for the amplified voices of multiple presenters echoing throughout the building. This made it very difficult to concentrate on the presenter of the session you were actually attending. I had the impression this was the first time the event organizers had used that particular venue – I can’t imagine them willingly choosing it a second time, especially if you also consider the air conditioning issue.

A Bunch of Hot Air

There was a whole lot of hot air being blown around the center. That’s not my commentary on the presenters, but a literal statement. From the moment I walked into the center, I noticed it was a tad uncomfortable. I hesitate to use the word “stuffy” because it didn’t get bad until the majority of the conference-goers showed up. Atlanta is a warm place by my standards, but every building I was in prior to the art center was nicely air conditioned.

Perhaps more frustrating than anything is that the AC would come on, blow a tantalizingly cool breeze for what seemed like exactly three nanoseconds, then shut down. It got so bad in the presentation areas I was forced to move back into the main part and strain even harder to single out the presenter I wanted to pay attention to. I’m not sure if I was exactly the first, but I was certainly one of the first to post a complaint. Shortly thereafter, I want to the people out front – one of whom was an employee of the art center – and gently suggested mine wasn’t the only dripping brow.

I must say (quite proudly) that my knack for innovation does not stop at software development. I foggily brainstormed for some sort of solution that would allow me some relief so I could better concentrate in the sessions. I remembered I had several Ziploc baggies with me, one of which contained my travel toiletries that was mostly empty. I dumped its contents into another and grabbed a fist-full of ice from the drink coolers. MacGyver would’ve been proud of my anti-goddamned-heat-stroke ice bag, which I kept on my thigh, held with my wrist in my lap. Now that’s an urban survival tactic!

In their favor I’ll say this: the art center employees finally recognized the problem and cranked the AC (steady-on) for the last two hours or so of the conference. The needle in my head gradually backed away from the red area and down around mid-yellow. Read on to find out why it never quite got to green.

Suggestions

So, if any of the Cocoa Camp organizers are reading this, I humbly request future events be held in a place that provides better sound isolation and that pays better attention to climate control. Those two problems plagued the event. Less pressing but still important is reviewing (and posting) a presenter’s summary – a title can be misleading and such a thing is far easier to catch if a summary is available.

Food, Family & Fun

Visiting Atlanta gave me a nice opportunity to visit with my dad for a bit. He lives an hour South of Atlanta with his second wife and drove up to have drinks and a bit to eat. I’m normally a wine person (as my profile prioritizes) but I never pass up a local brew pub.

Max Lager’s was, as luck would have it, right next door to Hyatt Place Atlanta, where I stayed. Possibly the coolest manly name ever (or the saddest alcoholic’s name ever – “My name is Max Lager and I’m an alcoholic.”), I quite enjoyed the 8% ABV Max Abbey brew. A lot.

Later Friday evening, at the JCT Kitchen & Bar, I met up with Sal Conigliaro. I first met Sal at WWDC 2009 and he did not forget I owed him a few drinks. At JCT, “A Small Orange” sponsored a pre-conference meetup and we were told to mention “A Small Orange” to get free drinks. After a few of the deliciously-free drinks, I discovered it was great fun to confuse people by handing them the small container of orange wedges kept at the bar for drinks. In all, it was a fun night.

No Sick Leave; Leave Sick

Sleepy & Sick

On a less fortunate note, I found I was becoming ill Saturday (the day of the conference). I suspect it had to do with the crazed sick woman at BWI. I woke up feeling fine (no hangover – I’m a professional, damn it), just with raw-feeling sinuses I initially contributed to dry hotel air. My condition quickly deteriorated. During my trip over to the center, I noticed things were getting steadily worse. During the first session, I felt like the other shoe dropped and I’d pass out of heat exhaustion.

The air conditioning issue I mentioned didn’t help matters (but I’m not suggesting it was that hot in actuality). I was feeling miserably hot and generally unwell. By the end of the day, I was queasy, my sinuses and throat were fairly raw, and my late nights and early awakenings had me feeling exhausted.

My flight back was miserable (save for a nice conversation with a delightful woman named Liz) and by the time I got home, my chest was feeling tight. I spent Sunday recovering and conquering the galaxy in Spore’s space age level (it’s fun to return to now and again). Miracle of miracles – I feel relatively good today. A bit of rawness and tightness of the chest remains, but I’m feeling pretty good.

Conclusion

So that was my Cocoa Camp experience. I have no idea if it will be received as enticement or warning, but there you have it. My judgement? It’s worth the trip and it’s remarkably affordable, but there is definitely room for improvement. I’d go again (but with emergency DayQuil and a liquid cooling system just in case).