WWDC Banners
It’s been two weeks since I returned from my first WWDC and I’m just now making a post about it (I have a somewhat decent excuse involving being out of town for 8 days on a motorcycle trip). Was it worth it? Did I get out of the experience what I was hoping?

The Keynote

Since this was going to be my first Stevenote, I wanted to be sure to get into the main room and not be stuck in one of the overflows; I wasn’t concerned with being close to the front, I just wanted to be there and be able to say “Yes, I did that”. I arrived at Moscone West at 6am—a full four hours before the keynote was to begin—to join the throng of attendees already in line, which started forming at about 9pm the previous night. A brief moment of hope was dashed when I realized what I thought was the end of the line was actually the line heading into the Starbucks beside Moscone West.

Once everyone started filing inside, the line got dense, and I mean dense. No matter, we were waiting to bask in the Steve’s RDF! When the keynote began, it became clear it was going to be all iPhone, all the time. First the mere glancing mention of Snow Leopard, then the drawn-out iPhone software demos that just seemed to go on and on and on. With only half an hour left and no mention yet of pricing and features, there was definitely very little time left over for a “One more thing…”, and sure enough, we didn’t get one.

Overall, the keynote was rather underwhelming. Really, if you haven’t yet watched the keynote stream, I wouldn’t bother unless you really want to see the whole presentation. Instead, check out Mahalo Daily‘s excellent WWDC Keynote in 60 Seconds to get the gist of what went on.

Oh, and the next time I’m at Macworld Expo or WWDC, I’ll be sleeping in and heading to one of the overflow rooms. I came, I saw, I attended; no more standing for 4 hours for me.

The Sessions

I can’t comment on the labs as I didn’t have much code with me to take to any of the engineers (thus removing much of the benefit of attending the labs) so the sessions were really the meat of the conference to me.

Some were great, filled with lots of useful information, while others seemed to miss the mark completely. The worst part was the session descriptions and titles weren’t always that helpful in giving you an idea what the sessions would be about.1 One of the better examples of this was the Core Data Tips & Tricks session that many people walked out of because it was far too basic (I’m told it started out with an explanation of what a relational database was).

Overall, the sessions more than made up for the cost of attending.

The Parties/Socializing

But everything that went on outside of conference hours is what really gives you your bang for the buck. From the sfMacIndie party the night before the conference began, to heading out with other developers for lunch and dinner, and just chatting it up between sessions, it was great to finally get to meet a bunch of the people I’d only thus far “known” (i.e. stalked) via their blogs and Twitter feeds. Plus, there’s the peoplewatching which is always interesting.

You Mac developers out there, you’re a decent, friendly bunch, ya hear?


Pre-show Discussions
Scott Stevenson‘s CocoaHeads WWDC was a great event and after seeing pictures of the crowd that packed into the San Francisco Apple Store to watch last year, I made sure to get there early. Myself and Paul Robinson wandered over more than an hour before it started and secured nice seats second row center.

Aside from the informative presentations given by the speakers, including a very intriguing visual debugging methodology developed by Daniel Jalkut, the question panel at the end netted some good stories and more nuggets of wisdom.

Tip for those wanting to get catch this next year (assuming it happens again, and Scott can’t find a larger venue): get there early!

The Food

It could very well be that my tastes are not as sophisticated as some other developers, but the food provided during the lunches at WWDC was more than acceptable to me. Having said that, I didn’t always eat lunch at Moscone West and got to head to some fantastic eateries for both lunch and dinner such as LuLu, ‘wichcraft, Mel’s Drive-in, and probably the most upscale food court I’d ever been to just beside the Bloomingdales.

In Summary

WWDC 2008 reinvigorated my desire to make great Mac and iPhone OS software. Not only that, I managed to check off each of the bullet points in my “what I want to do” list:

  • learn more about developing Mac and iPhone applications
  • Most definitely.

  • hang out with fellow developers, and possibly meet up with some that were/are motivating factors for finally getting Kepi Software up and running
  • Very much so, yes.

  • try to photograph some lemurs in the wild
  • Check.

  • check out San Francisco for the first time
  • I didn’t get to do this as much as I’d liked to have, but I got out and about a bit.

I even got interviewed by Scotty from the Mac Developer Network regarding the impending release of the iPhone in Canada.

So, would I do it again? Unequivocally, yes.

  1. For those wondering, yes I made sure to mention this on the Attendee Survey.
  2. Advertisement

Like a great many Mac programmers out there, TextMate was my code editor of choice, and not just for my Cocoa work, either. HTML, CSS, PHP, pretty much everything that emanated from my keyboard as plain text was done up in TextMate. I even use it as my plain text viewer for everything from .log to .csv files, and looking at syntax-coloured diff output by way of svn di | mate can’t be beat (except maybe by Changes).

But recently, TextMate’s dominance of my programming attention has faltered slightly.

TextMate’s Rise to Glory

When TextMate 1.0 was released, I took it for a spin and was underwhelmed. I can’t recall now what it was I didn’t like, but it just didn’t gel with me and I reverted back to using Xcode for my coding.

Somewhere down the line, I decided to take TextMate out for another run around the block. Mr. Odgaard had been making regular releases, and the changes that came from those updates were more than sufficient to sway me into switching back to TextMate.

Using Xcode 2.x on a 450MHz G4 (my primary machine at the time) wasn’t exactly an exercise in responsive computing. The most irritating thing wasn’t that the compiles were slow—whether I was using Xcode’s editor or an external one such as TextMate, I was still using Xcode for the builds so I was hampered regardless—simply using the text editor made my computer feel old[er than it already was]. Writing code in TextMate, however, was silky smooth; I wasn’t waiting for the editor to catch up to what I had just finished typing. This alone was a huge mark in favour of TextMate since, as someone who types at 100 words per minute, it was something that I perpetually had to deal with in Xcode.

Add to that TextMate’s ability to build and run the Xcode project the source files were a part of made the experience all the more pleasant as I wasn’t having to switch back and forth between applications simply to try out the code changes I’d just made. I made the switch to using TextMate, and that was the status quo for quite some time.

Two killer features of TextMate that I make heavy use of are Go to File and Go to Symbol. The ability to jump between files in a project and to various symbol points within those files really speeds up my workflow, especially being someone who lives on keyboard shortcuts. As a user of LaunchBar, the ability to type in familiar shorthand like, for example, afn and have the symbol list filter down to select -awakeFromNib just made it that much more useful.

Xcode had Open Quickly, but you couldn’t shorthand the filename, nor could you simply navigate the list of files in the current project with the arrow keys, like TextMate allowed. Similarly, Xcode had a symbol pop-up but I wasn’t aware (at the time) of a keyboard shortcut to pull it up so I was always reaching for the mouse to quickly flip somewhere else in the current file.

Xcode Plays Catch-up

When Apple released the iPhone SDK, it included new versions of the developer tools. Xcode 3.1 had many refinements and updates, and a few in particular got me to give it another chance at filling the role of my full-time code editor.

Some time prior to this, I had discovered ⌃2 gave keyboard access to the symbol pop-up menu. And with beta 4 of the SDK, Apple had made some significant changes to Open Quickly. I can’t go into specifics on what those changes were due to the NDA covering the SDK, but I can say that they put it practically on par with TextMate’s Go to File command, with a nice UI to boot. The two features of TextMate that I used most were now part of Xcode.

Another aspect of TextMate that saw frequent use from my fingers was snippets (which themselves are part of the stellar Bundle system). Around the same time as the SDK was released, I stumbled upon the documentation for creating custom .xctxtmacro files. I migrated my custom snippets used when writing Objective-C code over to Xcode text macros, and the final piece of the puzzle was in place: the primary features that allowed me to be really efficient in TextMate were now available to me in Xcode.

Toss in the fact I was once again able to use a single application for most aspects of my Cocoa development—plus having the debugger right there, ⌃ and ⌘ double-click, etc.—and Xcode has now regained its position as my primary programming tool. I even started playing with using the All-In-One layout mode thanks to a few more keyboard shortcuts, and I’m liking it quite a bit. I do miss a few things from TextMate, like the columnar editing mode, but I made use of them infrequently enough that it doesn’t impact my workflow to be without them now.

Looking Ahead

While I may have switched back to Xcode for my Cocoa-related coding, I still use TextMate for everything else, even writing my svn commit messages. It’s just such a capable editor and it meshes quite nicely with my workflow. But at least for the time being, when working on my software, Xcode is where I spend my time thanks to the changes Apple has made with version 3.1.

Who knows, TextMate 2 might sway my preference back in its favour. I’m quite happy to get to make a decision between two products that I really like, rather than be forced to pick from a field stagnating in mediocrity.

The Wish

Since I started programming, I’ve become increasingly interested in attending Apple’s Worldwide Developers Conference. Unfortunately, the cost for attending—specifically, conference access and the hotel stay combined with airfare from Canada—has always been high enough that it wasn’t a justifiable option for someone that was coding in their spare time (i.e. just for fun, not so much for profit).

The Fulfillment

My employer has room in the budget to send some of us Systems folk to a conference each year, and I had been discussing with my boss which one would be a good fit this go around. For the past two years I’ve gone to the FileMaker Developers Conference as I’ve been doing full-time FileMaker development at work during that time period. This year I’m the lead developer on the project to build the web front end to that database, and the amount of benefit I’ll get from DevCon this year isn’t nearly as significant as it has been.

My boss asked if there was another conference I’d rather go to that would be more beneficial. In the end, the one at the top of my list wasn’t the most directly applicable to my job (it was far from being completely irrelevant, though). I even mentioned it initially only as an off-hand remark along the lines of “Boy, I’d love to go to this one, but…”. Early last week she came into my office and said that I could go.

I finally get to attend WWDC.1

The Conference

This year’s WWDC runs June 9-13 in its usual stomping ground of San Francisco. The flights are booked, hotel reservations made, and WWDC E-ticket activated.

Scott Stevenson posted a great article back in 2005 aimed at helping attendees get a grip on what to expect and how to get the most out of WWDC. Since then, there have been a number of similar posts that I’ve also read over, though they tend to say roughly the same things as Scott.

The Keynote

Not only my first WWDC, but my first Stevenote, too! Finally, I’ll get to experience standing in line for hours, only to then go stand in another line, and possibly another, all to bask in the RDF. Frankly, I’m not too concerned with getting good seats, so long as I can make it into the hall. I’ll just watch the stream later if there are things I want a closer look at. I’m in it for the experience.

The Food

I’ve read some mixed reviews regarding the quality of the food provided to attendees of WWDC. It will be interesting to see, as someone who has attended a conference put on by an Apple subsidiary, how WWDC will compare to the wide range of quality food selections provided at FileMaker DevCon.

Worst case, I hit up one of the dozens of eateries in the general vicinity of Moscone that people seem to rave about online. I’ve already received a personal recommendation to check out Eddie Rickenbacker’s. Any other favourite haunts I should make an effort to check out?

The Crowds

The iPhone SDK has been big news for these last few months. I plan to attend a mix of sessions from the Mac and iPhone tracks, but will most likely favour those from the latter as I’m more green in that topic area (and after all, isn’t it de rigueur right now?)

As previously noted, this will not be my first time at a developer conference. It will, however, be my first time at one of this scale. FileMaker DevCon typically has an attendance of around 1,400 to 1,600, if I recall my figures correctly; WWDC 2007 had over 5,000 registered developers according to Steve Jobs’ keynote. Add to that the potential for a massive increase in attendees this year due to the influx of people interested in jumping on the iPhone development bandwagon, and it should be nice and cozy in Moscone.

Having said that, what I need to keep in mind is while there will be many times more people at WWDC than FileMaker DevCon, Moscone West is also many times larger than the conference center of the J.W. Marriott Grande Lakes, where the latter event has been held these last two years.

What I Hope To Get Out Of WWDC 2008

My long-held desire for wanting to attend WWDC is split about 50/50 between gleaning as much information as I could about developing for the Mac platform, and hanging out with other developers. I’m signed up to attend Buzz Andersen‘s 5th Annual WWDC Party and have another developer meet up in the works. I hope to at least get to say hello and introduce myself to a bunch of the developers I’ve come to “know” through the MacSB and cocoa-dev lists, various and sundry blogs, and most recently, Twitter.

To be clear, I don’t just view this as a chance to hang out and relax at a conference. I’m heading to San Francisco in June because my boss feels it will be beneficial to me as an employee first, and as an independent developer second. This will be a business trip. The bonus of the situation is that the information I take in will be equally applicable to my coding for Kepi Software as for potential future projects at work, so it’s win-win. Plus, when the sessions are over for the day, I’m off the clock so the options for what I do with my time are wide open!

The Bottom Line

I’m pumped, both professionally and personally, about attending WWDC 2008. Let’s see:

  • learn more about developing Mac and iPhone applications
  • hang out with fellow developers, and possibly meet up with some that were/are motivating factors for finally getting Kepi Software up and running
  • try to photograph some lemurs in the wild
  • check out San Francisco for the first time

Yes, please. And as Daniel Jalkut put it, “…most people at the conference won’t know me when they see me”. You can study my ugly mug in my Twitter profile image. See you all there!

Next stop, C4?2

  1. And on the company’s dime, at that! The primary reason I received the go-ahead from my boss was the potential for developing in-house iPhone OS (and to a similar extent, Mac) applications in the future.
  2. That one I’d have to pay for myself. I’m heading to Japan for 3 weeks in November, so I’ll likely have to wait for C4[3]

Good day and good greetings! My name is Jeff Nouwen and I’d like to welcome you to Kepicenter, the official blog of Kepi Software.

Some Background

I always enjoy reading background information on other developers. It can be illuminating and sometimes just downright interesting. So without further ado, here’s some information about me. Note: no guarantees are made as to the interestingness of the following!


I’ve been using Apple products almost my entire life. From plugging away on an Apple ][+ for typing class in third grade, to the first Mac my family owned, an LC II with a 14″ monitor (which was reasonably large back in 1992). The current setup includes my primary development machine, a Mac Pro (Early 2008) 3.0GHz 8-core with dual Dell 24″ displays.

I’m also an avid collector of Apple hardware. Currently, I’m in possession of over 40 items, with some of the more esoteric specimens including a Macintosh Portable replete with carrying case and all original documentation; a QuickTake 150 digital camera; and a Newton MessagePad 130, all in excellent working order.


I started programming in the mid-90’s when I picked up a copy Dave Mark’s fantastic Learn C on the Macintosh. I went on to graduate from the University of Alberta with a Computing Science degree (minor in Business). Programming is a true passion of mine; I love having the ability to create something out of nothing, especially when that something can help make peoples’ lives more productive or enjoyable.

I’ve written code for System 7.1 through Mac OS X 10.5 and used everything from the Mac Toolbox, to Carbon, and now Cocoa.


Kepi Software LogoKepi Software is the d/b/a for software I develop. As some may be aware, a kepi is a type of hat. It’s also tourist Hawaiian for Jeff. In actuality, Jeff is Iepi and Jeffrey is Kepeli. I guess those in charge of making “your name in Hawaiian” souvenirs decided Kepi rolled off the tongue better. Kepi Software seemed like a good name (and sounded far less silly than Jeff Software) so it’s what was chosen.

There has been a web presence since 2000, but nothing much has been done on the Kepi Software front over the last eight years, half of which were spent earning my degree, the other half at my day job where I am a PHP developer.

Looking To the Future

So what’s in store for Kepi Software? I’m hard at work on our first commercial product, but it’s still in the early development stage so further information will have to wait until a later date.

What will start off as an endeavour nurtured during my spare time will hopefully one day blossom into a µISV like Red Sweater Software, Flying Meat, No Thirst Software, and Clickable Bliss.

As for this blog, like the description in the header says, it will be another voice discussing Cocoa, programming, and other goings on in the Mac software development world. Watch for my next post which will talk about something that’s on a lot of Mac and iPhone developers’ minds right now: WWDC 2008.

More from Jeff

Apps to Check Out

  • Powerful Blog Authoring Made Simple.