WWDC 2008
[info]chanson
The time is upon us once again — WWDC time!

As I have the past few years, I'll be in San Francisco all week, staying at the Hotel Kabuki in Japantown.

And of course, I'll be around the conference all week — especially in the labs. Come by and say hi, and I'll be happy to help with any questions you have!

Down the Rabbit Hole: Four Years On
[info]chanson
Today was my four year anniversary working on developer tools at Apple.

No regrets about taking the red pill here!
Tags: ,

WWDC time again!
[info]chanson
It's WWDC time again for all of us in the Macintosh universe. I'm going to be up in San Francisco all week — if you've ever wanted to meet me, and you're at WWDC, this is your opportunity!

This year, instead of staying right across the border from Crackville, I'm staying at the Miyako in Japantown where JTAF is traditionally held. It's quite relaxing, though it's far enough out from Moscone West that I'll be taking a cab to the conference.

Two years!
[info]chanson
Two years ago I took the red pill and joined Apple Computer. I'm still loving it — it's hard to believe that it's been so long already, it still feels like I just got here. Thanks to everyone at Apple and in the larger community who has helped to make it great!

It's hard to believe that when I started, Panther was barely six months out, and that developers were still talking about their need for Mac OS X 10.1 (and, in some cases, Mac OS 9) support. It's almost as hard to believe that just shy of a year ago Tiger was on its way out the door, and that the announcement of Intel-based Macs was a couple months away.

I can't wait to see what the future holds. And I'm really excited to be doing my part to bring it about.
Tags:

Happy 30th, Apple!
[info]chanson
Today, Apple is 30 years old as a company. That's a long time, in company years, and there has been a huge amount of change since 1976. But through it all Apple has survived, innovated, prospered, and truly changed the world.

I don't think anything outside my family has wielded anywhere near the influence on my life that Apple has. From the time in the third grade when I first learned to program in Logo, a huge part of my life has been spent not just working with Apple technology but steeped in Apple's — Woz and Jobs' — values.

So, to Apple I say congratulations and thanks. It's been wonderful and I can't wait to see what our future holds.
Tags:

The New iMac's Predecessor
[info]chanson
The newly-introduced iMac brings up memories of a Mac long passed. I never had one, nor even much wanted one, but in 1993 Apple released a machine cleverly designated the Macintosh TV. (Believe it or not, this was a significant improvement over some of its succesors' names.)

The MacTV was a black 68030-based Mac with a built-in 14-inch monitor, an NTSC TV tuner, and an IR remote. Many of the Performa-series Macs that succeeded the MacTV built on its feature set. For example, in 1997 I had a Performa 6220CD on my desk at work. (What was I saying about names?) That Performa had a cable-ready NTSC TV tuner plus composite and S-video input, the ability to watch TV in a window while using other applications, a remote control, and support for optional video output.

The user experience was nowhere near as nice as FrontRow, and there was nothing even remotely like the iTunes Music Store or the iPod.

Creating an Application with Tiger Technologies
[info]chanson
There's a new article on the ADC web site, Creating an Application with Tiger Technologies:
To illustrate how to take advantage of the new technologies in Tiger, we're going to do something a bit different and present the creation of a prototypical Cocoa application over a series of articles. This first article in this series covers the first few steps of creating our application, including putting together a data model and providing a user-interface. As we build up the application, we'll look at most of the new technologies in Tiger and how they can be utilized. When we're done, we'll have covered the spectrum of technologies that you should consider using in your own applications.
Check it out!

Xcode 2.1: WebObjects 5.3 Development
[info]chanson
I titled this "Xcode 2.1: WebObjects 5.3 Development" for a reason:
Xcode 2.1, included with every copy of Mac OS X v10.4 Tiger, comes with the WebObjects development tools, including a new version of the WebObjects Builder HTML application design tool and a new Xcode designer for Enterprise Objects.
Yes, that's right. Free in Xcode 2.1.

Xcode 2.1: Configurations
[info]chanson
In case anyone hasn't noticed, Xcode 2.1 shipped at WWDC on Monday. It includes a whole slew of new features. First and foremost is, of course, Intel support. Lots of people have said a whole lot about this so I won't repeat it here.

The new feature that will have the most significant and immediate impact on developers' lives is the switch from build styles to configurations.

In Xcode 2.0 and earlier, a build style was a collection of project-level settings that were overlaid on the settings for all targets in the project. For example, if you specified OTHER_CFLAGS="-DFOO=1" in a build style and OTHER_CFLAGS="-DFOO=0" in a target, the build style would take precedence when it was active and the compiler would be passed "-DFOO=0".

This was confusing: Build styles were edited by inspecting the target, and the OTHER_CFLAGS entry in the target settings showed up with a strikethrough when it was overridden in the active build style. This also caused problems for some developers who didn't want settings from build styles overlaid on all targets in a project, and they particularly didn't want settings from a build style in a project to override settings in targets in subprojects.

Configurations in Xcode 2.1 are just collections of settings. Settings in a target configuration override settings in the matching project configuration. Also, target configurations are by default self-contained, while project configurations default to being empty, which means by default you don't have to worry about overriding at all. What's more, configurations are applied by name when building subprojects — settings in the project you're building don't override subproject settings.

Editing build settings in Xcode 2.1 is a lot like editing build settings in Xcode 2.0 and earlier: You just select a target or the project and bring up its inspector, and build settings show up in the Build tab. You can select a configuration to edit, and you can even edit all configurations at once. This is very, very useful — often most of the settings for a target will be identical across Debug and Release configurations. The ones that aren't show up in a mixed state.

(Did you notice I referred to Debug and Release configurations? That's because Development and Deployment have been retired.)

You can even specify that a configuration is based on a text file of key/value pairs with the ".xcconfig" extension. So if you have collections of settings that you want to standardize on — for example, a suite of compiler error and warning flags — you can store them in files and check them into your source code control system separately from any projects. You can even copy or drag directly from the target/project inspector in Xcode and paste or drop in an xcconfig file!

WWDC 2005 Wrap-Up
[info]chanson
WWDC 2005 is over, and damn was it a great week! Apple made some incredible announcements and shipped some incredible software, I got to see lots of old friends and make a lot of new ones, and I got to talk to lots of developers about things that I'm passionate about: Core Data, unit testing, setting up and streamlining your build process, and creating insanely great software to make users' lives better.

It was a wonderful, wonderful time. Thanks to everyone!

Xcode: Editor Fonts
[info]chanson
Did you know that using the Font Panel, you can specify a font with a fractional size? And that Xcode 2 handles this just fine?

Bitstream Vera Sans Mono 10.5 is a very comfortable font for coding. Not too thick, not too thin, nice tight tracking without being cramped, and nicely antialiased on an LCD.

Tiger's out!
[info]chanson
Mac OS X Tiger 10.4 is available now! Woot!

Mac OS X Tiger
[info]chanson
Just in case anyone hasn't heard, it's been announced! Mac OS X Tiger ships on April 29.

A whole year!
[info]chanson
Yesterday was my one-year anniversary at Apple.

Thanks to everyone who has helped to make it such a great year!
Tags:

ADC: Test Driving Your Code with OCUnit
[info]chanson
Also on ADC, Test Driving Your Code with OCUnit. This article goes over using OCUnit from Sen:te to do unit testing, and doing test-driven development of Cocoa code.

ADC: Developing with Core Data
[info]chanson
ADC posted a great article on Developing with Core Data. Check it out!

Mac OS X Debugging Magic
[info]chanson
If you're a Mac OS X developer, read this: Technical Note TN2124: Mac OS X Debugging Magic

You'll be glad you did.

Xcode Tips
[info]chanson
In over a year of working with Xcode, Apple's integrated development environment for Mac OS X, and few years working with its predecessors, I've learned a number of ways it can be leveraged to improve my productivity.

I think I should start passing these on. When I do, I'll prefix the subject with Xcode.
Tags: ,

Anniversary
[info]chanson
Monday was my three-month anniversary at Apple.

I'm still learning an amazing amount every day, and I still love it here — both California-here and Apple-here. It's beautiful, it's fun, and I can walk to work and to coffee and to get tasty nabeyaki udon.
Tags:

Down the Rabbit Hole
[info]chanson
I took the red pill.

Today was my first day as an Apple employee in Cupertino.
Tags: