Thanks, Mom

When you create a project in Xcode, the default About box thanks Mom:

Default About box

I don't remember if this was the case ten years ago — I'm not sure there even was a default Credits file — but I'm quite sure it was my own idea to thank my Mom in AppKiDo's About box:

AppKiDo About box

It bears repeating: Thanks, Mom! I love you!

John Geleynse

Last year I wondered about Ron Okamoto's responsibilities at Apple. (Who is Ron Okamoto, you ask? Exactly.)

I guessed, or maybe saw somewhere, that Okamoto manages John Geleynse. Today I was thinking about Developer Relations again and came across Geleynse's LinkedIn page, where he describes his dual role as both Director of Technology Evangelism and User Experience Evangelist at Apple.

Geleynse's mission, as I understand it, is to help developers be Apple developers in the strongest possible sense of the term. He and his team help us learn and use Apple technology, and he helps us design user experiences that are up to Apple's standards.

I see he's not responsible for the sort of plumbing issues that are most often complained about, like Radar, like app reviews and rejections, or like the recent fiasco with WWDC tickets being revoked. But he might be someone to bug (assuming he's approachable) about the uncertainty around sandboxing.

I saw Geleynse helping someone at a Tech Talk years ago, and he seemed interesting. I wonder if he'll give a talk or have some sort of presence at WWDC other than hosting the Apple Design Awards.

Director, Technology Evangelism
Apple Inc.
Public Company; 10,001+ employees; AAPL; Consumer Electronics industry
December 2002 – Present (9 years 6 months)
Responsible for directing a team of technology Evangelists who:

  • Provide the technical guidance and insight needed by 3rd parties to build elegant, attractive, innovative, connected, integrated, and great software solutions for iPad, iPhone, and Mac
  • Promote advanced iOS and OS X technologies and software development techniques to the 3rd party ISV and software development community
  • Work with Apple’s engineering and interface design teams to efficiently address technology adoption issues faced by 3rd party software developers
  • Track 3rd party developer technology needs and communicate them cross-functionally within Apple
  • Define and manage the technical content for the annual Apple Worldwide Developer's Conference (WWDC) and annual Tech Talks
  • Manage and host the annual Apple Design Awards

User Experience Evangelist
Apple Inc.
Public Company; 10,001+ employees; AAPL; Consumer Electronics industry
November 1999 – Present (12 years 7 months)
The user experience for Mac OS X applications encompasses the visual appearance, interactive behavior, and assistive capabilities of software.

Primary responsibilites include:

  • Working one on one with 3rd party software development team to ensure that products they're building deliver a truly Mac OS X user experience
  • Improving the user interfaces of 3rd party software products via design audit/review meetings in which every application window, dialog, palette, toolbar, and icon is reviewied for Aqua compliance and the overall usability and interaction design is analyzed and re-designed
  • Defining the lions-share contents of each revision of the Apple Human Interface Guidelines
  • Working closely with Apple OS Engineering to ensure Aqua adoption issues faced by 3rd party developers are addressed.

A quick look at Dash for doc browsing

Dash, by Bogdan Popescu, is a brilliant developer utility that removes friction from two key areas of programming: looking up documentation and reusing code snippets. I haven't played with the snippets manager, and I've only played with the doc browser for a few minutes, but already I notice some excellent things:

  • It's fast to open and dismiss with a hotkey.
  • It performs fast live-searching as you type into the search field.
  • It includes a ton of docsets for a variety of languages and platforms, not just Cocoa and iOS. See the screenshot above for a complete list.
  • You can add your own docsets. The Kapeli web site helpfully points you to instructions for creating them.
  • It shows an Ingredients-like table of contents listing methods, properties, etc. for the class you're looking at.
  • It has options to search Google and StackOverflow, all while staying within the app.
  • It handles URLs of the form "dash://foo". If you click on such a URL, the Dash window will open and perform a search for "foo". This can be useful for things like emailing URLs as pointers to documentation, and putting links in one's own notes. Who knows, maybe someday there will be a web site called "Let Me Dash That For You" (although lmdtfy.com is already taken).

In Xcode, URLs are clickable when they appear in comments. Unfortunately, this doesn't work with dash:// URLs. I've filed a Radar requesting the ability to specify more URL schemes for Xcode to recognize. In the meantime, if one wanted clickable links badly enough, I suppose one could run a local HTTP server that converts localhost URLs to Dash URLs. Maybe Dash could have such a server built in? Would it be worth it?

More suggestions:

  • Add a Service that performs a search, much like a dash:// URL, but using the currently selected text in my frontmost application (which might be Dash itself).

    [UPDATE: @kapelimac informs me that Dash has had a "Lookup in Dash" Service for quite a while. My fault for not spotting it.]

  • Auto-detect method names. When I come across a method call like [obj doThis:xxx withThis:yyy] I'd like to be able to double-click one of the brackets to select the whole expression, and invoke the above-mentioned Service to perform a search. I'd like Dash to recognize that what I mean to search for is "doThis:withThis:". For extra credit, be able to detect a method name in any string that contains a colon. Or if that's too hard, any string that begins with a square bracket.

  • Add a social element such as Scott Anguish suggested a while back. This might not be a direction Bogdan wants to invest in, but it would be an interesting experiment. Of course, that's easy to say when I'm not the one doing the investing.

    [UPDATE: More from @kapelimac: "And another note: Dash has had Wiki pages for each method/class, but no one used them, so I removed them. And: "I plan on adding Disqus threads to all documentation pages, but I'm still waiting on a reply from @disqushelp if they allow it."]

I see from Dash's Twitter feed that Bogdan is quite actively working on the app, and in fact plans to start charging for it with the next release. I encourage you to check it out now while it is free, and to consider buying when Bogdan sets a price on it.