Archive for August, 2006

Objective-C 2.0

Andy Matuschak has a great write up on what to expect in Objective-C 2.0. As someone who didn’t make it to WWDC this year (one of my business partners got to go this year), I found the article very informative.

What’s more, he managed to describe the changes to Objective-C using only publicly available sources (i.e. no NDA violations). Very impressive.

Xcode scavenger hunt

I’ve always enjoyed a good scavenger hunt for the way it can get rid of unwanted people without hurting their feelings. This is why they’re particularly effective at the end of a party, when you’re busy, or when you need a reason to have random people arbitrarily obey your whims and enjoy it.

Organizer: Here, go look for these random objects I just thought up!

Participant: OK! Where do you think I can find one of these “cow catchers”?

Organizer: Just stand on these tracks and it’ll come right to you.

Participant: Wow, thanks! I love scavenger hunts, they’re so fun!

But I digress.

Surprisingly, there are ways to have a scavenger hunt without committing a felony. I’d like to try one now. See if you can find the following things in Xcode:

  • Your dignity, when the Xcode’s linker locks up the entire machine, except for iTunes, and your business partner calls and you have to explain why The Breakfast Club soundtrack is blaring in the background.
  • Which symbol you haven’t defined, but your linker won’t tell you about, because Xcode turns on ZeroLink (motto: We eliminate the most important job of a linker so you don’t have to!) by default in hopes that you’ll give up on your product idea, and just email it to Apple directly thereby cutting out the middleman.
  • The file you just had opened, but accidently closed, but can’t access from the Open Recent menu because source files aren’t project files, and nobody ever needed to quickly access anything but project files, you big jerk.
  • A button in the Find in Files dialog that says, “No thanks, I don’t want a Find Set, I’d just like to search this folder.” Bonus points if it doesn’t require creating a Find Set to enable it.
  • Any way to make Open Quickly slower or more inconvenient. Requiring three or more keys to invoke it or ensuring it searches the smallest set of files possible do not count, because Apple has already thought of those. (Hint: it should include Find Sets in some way.)
  • A clue of what might should happen when you double click on a function in the debugger’s call stack. (Hint: Look at CodeWarrior.) If you find this, don’t give it to me, email it to the Xcode team. They need it.
  • The state of the program when a call to DebugStr() or Debugger() happens and Xcode quickly, efficiently, and without error doesn’t stop for them.
  • Code demonstrating the technical reasons for why Xcode can’t save the window locations of a project when the files they are stored in are not locked, although the file next to them is. (Hint: the code should invoke the Heisenberg Uncertainty Principle, or involve a lot of illegal narcotics.)
  • A flowchart that explains the optimal way in which to obtain the new developer documentation that Xcode insists on telling me about every five minutes, in an application modal dialog. Bonus points for why its not in the Software Update or why you need an NDA to read about how Quickdraw is deprecated in four different languages.
  • The cure for Xcode’s Alzheimer’s, who cannot remember between runs that I selected “Show Types” in the debugger, despite the fact that I yell at it each time to remind it.
  • Your brain, after attempting to determine what correlation or relationship there is between what you selected for Go To Symbol (command-double click), and what Xcode actually retrieved.

How many were you able to find? Entries can be submitted via Apple’s Blackhole of no Return, which, for some reason, they insist on calling “Bug Reporter.”