Corporation Unknown Logo

WWDC Recap, Part Two

When last we joined our intrepid WWDC newbie, he had just entered Grand Keynote Cavern. Come along for the action-packed continuation (and conclusion, I promise!) of The Tale of WWDC.

The Keynote (Continued)

Watching the Keynote from the back half of the hall is about the same as watching from home, only as it happens and with more crowded seating. It was an interesting experience and I don’t regret it one bit, but doubt I will worry about getting up early during any future WWDCs I may attend. Overflow seating should be just fine from now on, but I didn’t even want to pretend to be a Keynote-wearied veteran my first time out.

As for the content of the Keynote…

Hardware: iPhone 3G. Even though I usually avoid the rumor sites and discussions, it was fairly obvious that this was coming. I had proposed a bet elsewhere that “3G” would not be in the name, but none of that crowd took me up on it. I try not to be “that guy,” but for a short period there it was hard not to regret paying $200 more (x2, one for my wife) for my iPhone just two months ago, but I’m so much happier without the RAZR that I just can’t be upset. Not so sure that I like the new plastic back, and software features will be coming to my current phone, so I have no plans to run out and buy a 3G.

I was kind of hoping for a new laptop announcement, not so much because I expected one but because I was hoping for a “caught up in the moment” excuse to upgrade my PowerBook G4. I’m pretty sure I had the oldest machine there; when I could see the wireless network set aside for laptops, I got a self-assigned address so I assumed it was 802.11N-only and ended up connecting to the wireless for iPhones (sorry about that, other iPhone users). At one point I thought I saw a TiBook and tweeted that I no longer had the oldest machine at the conference, but in hindsight it was probably a Dell laptop with the lighter colored case edges.

iPhone software demos…iPhone development demo…the iPhone focus was understandable and expected, but I was there for desktop application development—not because I’m down on iPhone development, but because I have a desktop idea, not a phone idea, and I don’t plan to fight to be at the front of the App Store line without a strong idea that would stand out from the crowd.

MobileMe: I’ve been perfectly happy to pay $100 a year for a while now—almost solely for sync. Yes, I use iWeb and the iPhoto sharing features as they have evolved, but I’ve never really used the email. It looks like this is going to be a solid improvement. The name change neither bothers nor excites me; it’s simply understandable to appeal to current PC users.

And finally, Snow Leopard received almost cursory mention and a promise to talk about it later. For non-attendees seeing only the Keynote (and particularly those who spend much energy trying to glean insight out of every tea leaf) I could see that it might seem Apple has lost focus of the desktop in favor of the iPhone. It was slightly anticlimactic for me, too: In the back of my mind, I was hoping for some stunning new announcement to witness my first year. But as the week went on, I became more impressed.

Snow Leopard

I had heard rumors of the next release being code-named “Snow Leopard” (usually as “it’S No Leopard” ) and that it would be almost entirely performance enhancement. Sounds boring, to the point of unbelievability. But what they are actually doing is so much more than unrolling some loops and using updated algorithms. I intentionally took strong notes during the Keynote to identify what was not under NDA, but Apple has since announced more than they did at the Keynote. As a result, I feel a little unsure of what is acceptable to talk about so will err on the side of non-specifics.

Performance and Concurrency

Saying that Snow Leopard is “focused on performance” doesn’t convey the impact of what Apple is really planning. They’re aggressively moving to 64-bit support (almost) system-wide, and they have already announced Grand Central Dispatch and OpenCL, two great mechanisms to enable developers to take full advantage of the multiple cores on both CPUs and GPUs. But there is a lot more: Much like Core Animation started on the iPhone and spread to 10.5, numerous optimizations made for iPhone will be incorporated in Snow Leopard, exhibiting the leverage of having your desktop and embedded systems share the same OS.

Other features being added are geared toward improving the user experience, but in terms of system response rather than introducing whizzy new interface design. It was fascinating to come to the realization of just how much Apple engineers are questioning everything in the system, even so far as shutting down the computer faster. Some features will require developers to write new code to take advantage of them, but with Apple planning to make these improvements to their own applications I think life will be filled with fewer spinning beach balls out of the box, making this a worthwhile upgrade for every user, not just those needing high-powered computation.


The biggest problem with the sessions is the logistical problem of moving so many people around efficiently. Almost every session required a queue out front to get in, and were accompanied by requests to leave each auditorium as soon as possible when finished. The logistics of the crowd always gets grumbles from past attendees (last year’s attendance was “over 5,000” and this year was 5,200), but I felt the staff did an excellent job of making it all smooth and compact while being friendly and courteous. Even past attendees complimented the staff on being much friendlier than last year’s staff.

As expected, the iPhone sessions were the star attractions, but I tended to avoid them in favor of other desktop technologies. I was shocked when a session on Bonjour networking was packed—it’s a ten-year-old technology now, it should be old hat—until I realized that it’s the preferred network discovery mechanism for the iPhone, too.

I attended a session every period one was offered, except for two end-of-the-day sessions so I could have time to head back to “home base” and return later. Sometimes I had to make a tough decision between two sessions I was very interested in (I look forward to videos of the sessions being available) and other times I just chose which current session looked least boring, but I was determined to take full advantage of session times.


Most people will tell you one of the most useful yet woefully overlooked aspects of WWDC is the labs. You can look up the scheduled times for certain topics of discussion, sign up for a time slot, and get one-on-one time with an Apple Engineer to answer your questions and/or give you feedback on your design.

Sadly, my development is neither in a state where I need help getting past a problem I’ve been banging my head against, nor far enough along that I feel I could expect any useful review feedback. Coupled with always being able to find a session I could find interest in, I did not attend any lab sessions. I do know of plenty others, though, who got great constructive criticisms on their UI, concise answers to questions, and even a full day (or more) of working through issues. I fully intend to shift my focus to labs if I attend next year.


Ask any previous attendee, and you will almost universally be told the biggest takeaway from WWDC is the socializing and networking opportunities, and I completely agree. I may not agree with the occasional attitude of networking to the point of skipping sessions, but even at that extreme it holds true that there is the promise of videos of the sessions being available later—missed networking opportunities like these will not come again.

I am not a naturally gregarious person; I have always tended to fear that if I can’t follow up “Hi, my name is Paul” with a reason that person should be interested in me, I have only intruded on their time. But this attitude is borne of going out to meat-market bars or standing in book signing lines as a fan; WWDC is most certainly different. There are many Apple engineers there, and they are interested in what you are doing with their systems, how you felt about learning them, and what kind of wild hair-brained ideas you may have for them. Most of the attendees there are also interested in what you are doing, but they are a bit more likely to be distracted by trying to extract knowledge just as you are. At WWDC at least, you are really rewarded by putting yourself out there to give others the opportunity to find you interesting.

There are structured opportunities for socializing: Labs are a form of socializing, primarily with Apple engineers; the Welcome Reception on Monday evening (which I did not attend) and the the WWDC Bash on Thursday (which I did attend, and enjoyed the Barenaked Ladies concert greatly). But there are also less formally planned (by Apple, at least) events: The MacSB sfMacIndie soiree on Sunday night was excellent; I had planned to attend Buzz Andersen’s 5th Annual Party but got sidetracked by dinner and wine with my in-laws; Tuesday I attended a damn good A’s game with my brother-in-law (damn, I wish Seattle had a BART equivalent); Thursday was the aforementioned Bash featuring Barenaked Ladies which would only have been better if I’d figured out a way to drop my laptop bag somewhere beforehand.

Wednesday deserves special mention. The Sync Services team hosted a wine-and-appetizers dinner at District which I attended (after the Apple Design Awards) because sync fascinates me. I certainly felt like a little fish swimming in a big pond, with other attendees being from Mark/Space, Spanning Sync and Marketcircle, yet I still had no solid code (or even complaints) to discuss. Regardless, the team was gracious, generous and great to talk with. After that wound down, Twitter came through and let me connect with colleagues for a continuing night on the town.

Day-After-Drinking Tip: The Tempest bar shows up on credit card receipts as “Kubalas Kitchen”; when entering receipts later, it took me a while to figure out that I had not eaten two lunches—the 1:30 timestamp was am, not pm.

I had made Corporation Unknown business cards to hand out; I didn’t hand out a great deal of them since I didn’t want to feel pushy about something that had no product released yet. But I did tuck one of them into my badge holder during the sfMacIndie event Sunday, then toned it down to just a logo sticker the rest of the week. It got many positive comments and broke the ice a number of times; I recommend everyone do it (it’s not even my original idea, but I forget where the idea did come from).

As I mentioned before, I’m not naturally gregarious. I had a particular advantage to socializing this year by being fortunate enough to have gotten to know many other Xcoders, many of whom are successful indie developers. Not only did I get to know most of them better and met more of their co-workers, but to a fault, they were very generous in introducing me to yet other indie (already successful or just working toward it) developers. A (woefully abridged, I am sure) list of people I met, in something resembling chronological order:

The combination of networking and learning make WWDC an incredibly invigorating experience; I fully intend to return next year, and am working on clearing my schedule for C4[2].