Monthly Archives: August 2006

Reflecting on WWDC 2006

WWDC 2006 was great. (Yes, it was two weeks ago. Finally making time to blog again.)

I won’t dwell on the announcements too much, but I generally agree with some that there was nothing earth-shattering. We have only seen a part of what Leopard will become (an improved Finder and some unification of window and control types seem inevitable). The most exciting stuff is new APIs for developers, not flashy end-user features.

I had a great time hanging out, catching up with people and meeting new folks too. Buzz Anderson’s “Monday night party”: was excellent.

In addition to the new Leopard goodness (hello Core Animation and Interface Builder), I also came back with new excitement for a side project that I have been working on: an email client. I had stopped active development until hearing what Apple had planned for in Leopard, but now I can safely say that they are going in a completely different direction than what I want to focus on.

Threads like “this one on Hawk Wings”: (via “Steven”: also confirm that there are a number of users out there who want the same kind of things I want in an email client. Of course it has to be fast and scale, but I think I have a few twists on the old formula as well.

In San Francisco we also stayed an extra day and visited the Oakland museum, drove up to Point Reyes, and saw a great musical Friday night: “Putnam County Spelling Bee”: I recorded a bunch of audio for an upcoming podcast, although not as much as I probably should have. There were a few times in particular I wish I had taken my microphone out.

San Francisco walk

It’s Sunday before day 1 of WWDC 2006. Willie and I took a walk this afternoon, down Market Street to the bay, following the water around to Pier 39, then up Lombard and meandering through quiet San Francisco back streets until we come through the middle of Chinatown and back to the hotel. Along the way I recorded some pieces of audio, hoping I could use them for a podcast I’m preparing about the city. Willie snapped pictures, almost all of which came out looking really good. I like this one of me trying to get the sound from underneath the cable car track.

I accidentally left the MiniDisc recorder going for a part of our trek, wasting a bunch of disc time. The UI is so bad on these devices that I don’t know how to cut out just part of a track, so I went off searching for a new disc. Over lunch Daniel Steinberg had showed me his M-Audio, which I had considered earlier and now pretty much regret not purchasing. Maybe I’ll eBay the MiniDisc recorder at some point.

Tomorrow morning is the keynote.

WWDC 2006 coming up

“John Siracusa rants a bit”: about the lack of access to WWDC for non-attendees. I agree that the session DVDs, sample code, and other resources should be made available to everyone. But there is so much to the conference that can’t be bottled up for later.

I have been extremely lucky to have been able to attend WWDC for each of the last 5 years with “VitalSource”:, and a few years off and on before that. I think my first WWDC was 1996, which also makes next week my 10th anniversary of attending.

1996 was “Copland”:, the middle of the dark years for Apple. It was strange to be a Mac developer back then, to stay optimistic in the face of a barrage of bad press. I think it helped that I was “part of a small team”: that was passionate about this stuff. We couldn’t imagine building Windows software, although we did dabble in BeOS pretty extensively.

So, on to my hopes for this year. First, I have no idea what will be in Leopard. Like many people, I hope for some Finder improvements and an effort to bring the fragmented window and control types back together. I also assume that Leopard will have nice new features, and that those features will have developer APIs to go along with them.

Second, for the last couple of years I’ve believed that a Mac tablet is forthcoming. Tiger introduced two core pieces to this: handwriting recognition and portrait mode. “Patent rumors”: continue to hint at such a device. Judging by how many designers and animators have embraced the Windows-based Tablet PCs (for which the hardware mostly still sucks), I think an Apple-designed tablet could be extremely popular. This is the only piece of hardware I would literally buy on day 1.

Going to WWDC? Say “hi” if you see someone who “looks like this”:


Last year I started some extra work to help bring DigiCel FlipBook to the Mac. FlipBook is software for traditional, hand-drawn animators, and it is actually somewhat unique in the industry. Whereas Flash and Toon Boom are vector-based, FlipBook started life as pencil test software for paper-based workflows. It supports scanning with peg hole auto-registration, camera capture, or drawing with a Wacom tablet.

Customers had been asking for a Mac version for a while, but the initial port from Windows to the Mac was not quite ready. It was missing QuickTime support for import, export, and video capture, and the Win32 compatibility layer was somewhat of a roadblock to a polished Mac product.

I entered the project and ended up re-architecting the application to have a more Mac-like appearance. Instead of using the Win32 library, I wrote a lightweight MFC implementation entirely in Cocoa. MFC is Microsoft’s C++ framework, still widely used even with .NET and C# pushed for new applications. This approach allowed the application to be driven almost purely from Win32 and MFC, but it uses NIBs for all windows and controls because the compatibility framework sits at a much higher level. In several places the Windows code peeks through, but it provides enough flexibility that more and more of the application could be upgraded to a modern Mac look and feel while still sharing a common Windows codebase.

The idea is that by working at the MFC level instead of Win32, you can get by with implementing only a very small subset of the full Microsoft frameworks. If the app only uses a few basic control types, for example, you only need to wrap those onto their Cocoa counterparts and can ignore everything else. (Otherwise you end up rewriting all of Win32 just to load and run the unmodified MFC sources.) Even with that simplification, though, the truth is that I seriously underestimated how much work this would be.

The stack for this ends up looking something like this:

FlipBook diagram

It has been an interesting project, both for the technical challenges and because animation is near to my heart. I plan to use the software in my own personal film projects. Here’s a screenshot of the latest version.