WWDC 2004: Day 3
For WWDC, I'm staying at the Mosser. There is a floor here with an interesting property: it is the Floor That Has No Name. It's a curious phenomenon. You'd ordinarily say that it is floor 6. After all, it's above the fifth floor and below the seventh, and all the rooms on it have numbers beginning with 6. Even the elevator, if asked for the sixth floor will take you there.
But the elevator shows its deference to the floor in a far more profound way. It never shows "6" on its seven-segment display. If you come from the lobby and press the button for the sixth floor, it will show "5" when passing the fifth floor, but leave "5" on the sign for the next floor. If you are coming down from the seventh floor and stop at the floor below, the display shows "7" for the floor.
It is truly a unique sight to behold. Surely the pilgrimages will begin soon.
An interesting note about MadsonLine charging station. I was complaining that they didn't have chargers for the 17" PowerBook battery until they hacked one together, but it turns out that there isn't such a beast in their product lineup, and Mr. Madson himself hacked one together to help charge the batteries of the attendees with 17s. I'm very impressed.
Anyway, this morning I went to Kinko's with the final version of the AdHoc flyer. The guy there could finally get it to print with the gutters lining up for a trifold, and so I told him to make the batch. Unfortunately, it was going to take a while, so I had to walk back to Moscone. I didn't really relish the idea of coming back. After all, it's about a mile and a quarter round-trip to there from WWDC, and this was already twice. But I didn't have much choice. I resolved to take the bus to pick up the flyers.
The first session of the day was WebKit, and its new features. There are two of note. The first new feature is nice, but the implementation is disappointing. There's already a standard for this, but the WebKit folks chose not to use it. I filed a bug. The other thing is a non-standard drawing surface designed for use primarily for Dashboard widgets.
Next was the Spotlight framework session. It wasn't really much of a surprise that Dominic Giampaolo is one of the driving forces. After what he did for the BeOS and its extensible-attribute file system, it sounded like something he might do. It's clear that they've put a lot of work and thought into this, but there were a lot of questions that still remained.
The main problem with Spotlight is that it organizes the metadata by file. Several people brought up a problem: Not everything is file-based. For example, suppose you have an email program that stores messages in a database, but you wanted to put the individual messages into the Spotlight engine so that the user could search for them. Apparently you can't do that right now, which is very disappointing. What's unusual was some of the team's responses when, in Q&A, they were pressed to explain how Mail.app's individual messages appeared in the Spotlight demo. "Oh, Mail.app bursts the mailbox" (i.e. stores each message in a file). That's certainly not how Mail.app does it today in Panther. It's possible that in Tiger it's changed. However, if we look at the screenshot on the Tiger preview page, we see that contacts have individual entries! Is the Address Book special-cased in the search menu? Something else is going on.
Lunch was nothing special. After, I stood at the bus stop on Mission, waiting for either the 14 or 14L bus to come by. After a while, I gave up and just walked to Kinko's. I was just about there when the 14 bus passed me.
Session 639 about testing and debugging Java apps was a disappointment. Very little about testing was mentioned other than to plug Xcode and JUnit. The bug-finding part was just either using the JVM's stack dump facility to try to find easy deadlocks, or profiling an app using Shark for Java. The last part of the talk was on how to write a good bug report, but that wasn't anything I didn't already know.
I did get to ask a question. "We have this server app, actually a J2EE app, running on JBoss. All Java, no native code. It's installed at a customer site, and they have a hundred or so people just hitting on it. Out of the blue, one day, it just falls over and SEGFAULTs. All I've got is the stack dump. I can't reproduce it. But I sent it in anyway as a bug. You guys asked if I could send in reproduction steps. When I couldn't, you closed the bug. Are such bug reports useful, or should I just not even bother?"
"Oh, definitely send them it. Even if you can't reproduce it, maybe we'll get a general idea of where a problem lies based on multiple reports."
"Great. So, can I make a request? If I've stated in my bug that this was a crash at a customer's site that I have no ability to reproduce, could you not reply to me asking me for steps to reproduce the crash?"
The next session that I'd planned to go to was 439 on network awareness. But it was cancelled, so I dropped into the Cocoa tips session. I was late, and it was packed, so all I got was a seat along the wall. It was some interesting stuff, but nothing really applicable to me.
The final session was Java deployment--applet vs JNLP vs application. Interesting, though I knew most of that stuff already.
I tried out the other kosher restaurant in town. It was a bit farther, and was located on the second floor of a shop. It was not fancy, but the food was a lot nicer than the other place. I went back to Moscone West, and dropped by the Open Source BOF.
I'm typing this up from the lobby of the Mosser. Apparently, they're testing out their WiFi system for free ☺ before they start charging for it ☹.