[This is part 3. See part 1, 2 or 4]
This is WWDC week, which is why I’m here after all.
I went to the conference venue early on Monday in the hope of getting a good seat for the keynote. Unfortunately that didn’t work out as I had a different badge this year, which means that they stuck me into the overflow room where I got to watch the show on video projection. Oh well... The content is more important than the form, right :-)
During the keynote, of course, Jobs Drops Da Intel Bomb, which pretty much set the main topic of discussion for the rest of the conference. It also provided a lot of interesting session content. As always, many of the session descriptions which were published before the conference were kind of vague and they made much more sense after the big announcements were made during the keynote. Apple also added a few sessions about the new Xcode 2.1 and Intel porting.
On the evening of the first conference day I went to the WWDC weblogger’s meetup organized by Buzz Andersen. It was great to meet many of the people whose weblogs I read all the time, I had lots of interesting and funny conversations (I’m still amused about the tail recursion interview question...) The meetup’s location, the Thirsty Bear, is a nice place that serves good beers and food, it’s just a block away from Moscone.
For the rest of the conference I releaxed and enjoyed the show, with the exception of the AMP session led by Apple’s John Montbriand on Tuesday morning, where I got the opportunity to present my website and PHP packages for a few minutes. I was very glad it was just a few minutes :-). The scary thing was that I had planned to come into the presentation room a bit early to install my PHP installation package onto one of the demo machines so I could show off some of the added capabilities of those modules.
Everything looked normal until I realized that the demo machine was an *Intel* box! Of course, my PHP module is a binary built for PPC machines, so it cannot be loaded into the Intel Apache server runing on this system. Nice surprise to find out about this 30 minutes before the session starts :-) Of course, when we rehearsed and planned this a week before, nobody, not even the Apple people, knew anything about the Intel news... Luckily, there was an alternative G5 demo machine available so that one was swapped in, and everything worked well thereafter.
I’d like to thank the people at Apple’s DTS group (especially Norm, Stephen and David) for this opportunity and the support of my Open Source-related Mac OS X work over the past few years.
Anyway, after my small part of the session was over, I could really sit back and enjoy the conference content as a regular attendee... My main interests were news in the Cocoa frameworks, especially Cocoa Bindings and Core Data, and development tools, especially using Xcode efficiently. Xcode gets better and better with every release, I really like to work with it. The Xcode team at Apple is doing an amazing job. [Pictures]
Of course I visited all Intel porting-related sessions too. I spent a few hours in the Intel porting lab one evening. I realized that pretty much every single one of the Cocoa applications I have written so far uses one or more open-source libraries. That’s a bit of a problem for my porting efforts because in my case I cannot simply flick a switch in Xcode as these libraries are usually built using the GNU autoconf-style build process. These configure scripts and Makefiles have no concept of building fat or, as Apple calls them, universal binaries, and they make all kinds of assumptions that break in this scenario. I tried fiddling with compiler switches, multiple -arch flags, the “lipo” tool etc. but it’s really messy. After a few hours I did manage to build all my XML-related open source libs as universal binaries, and thereafter it really was as easy as Apple described it, the changes in my own, Xcode-based code for my TestXSLT app took less than 10 minutes, and then I had a nice, universal binary application.
It will be a challenge to build a universal PHP module, because that is nothing *but* open source libraries packaged together nicely. I think my strategy will be something like building every library twice for both architectures by passing the appropriate compiler flags (and I just *hate* how the GNU autoconf/libtool stuff does not properly propagate compiler and linker flags in all cases). Then I’ll write a script to recursively find all binaries in the two trees and glue them together using lipo.
All the time during the conference, it was fun having people come up to me and telling me that they use my PHP packages. I was really surprised how widely used it is, I usually only hear about it when something doesn’t work right, and not about the (hopefully) many more cases where it just works out of the box and does what people want... It was especially cool when I was shown some Apple-internal servers running it during an office tour at the WWDC campus bash.
The campus bash was a lot of fun and as always a good opportunity to meet people, although the food was better two years ago... Nice music, too...
Another great session, both informative and very funny, was a lunch-time talk given by Michael B. Johnson who from Pixar’s Studio Tools Group, where they use Cocoa heavily. There was a *lot* of interest in this session, they started to put people into an overflow room again.
This week’s highlight was a sailing trip in the San Francisco bay. We were invited to go on Saturday, and conditions were just perfect, enough wind and no fog, a nice and sunny day. We started south of San Francisco and motored for a while until the wind picked up near the Bay Bridge, which is when the sails went up. After passing Alcatraz we got a nice view of the Golden Gate Bridge. Shortly thereafter we turned around, passed on the other side of Alcatraz and headed back. All in all about 4 hours on the water, a nice way to spend half of Saturday... [Pictures]
This time I finally got around to checking out the night life in San Francisco, specifically I always wanted to see the DNA lounge. I was really lucky because one of my favorite record labels had a label night on Saturday of this week, featuring Mark Farina and DJ Colette (great music and a beautiful voice). I had a great night out there and will go again next time.
On Sunday friends took me to Napa Valley where we visited several wineries, among them beautiful Niebaum Coppola, to taste various great Californian wines... [Pictures]
This week’s restaurant tips:
- Ananda Fuara at 1298 Market St. was way too busy when I visited so I couldn’t get a table, but the dishes and the menu looked very promising.
- Cafe Gratitude at 2400 Harrison St. was also too busy when I went for brunch, but I’ll try again next time :-)
- Toy Boat Dessert Cafe at 401 Clement St. has excellent sandwiches.
- I ate at Herbivore several times at both locations, highly recommended.
- If you’re in the Napa Valley region, try the Pinot Blanc restaurant at 641 Main St. in St. Helena.
- More veggie tips here and here.
|




