Core Fruition

WWDC09 Sessions & Labs

Apple has posted the first set of scheduled sessions and labs for this year’s WWDC here: Worldwide Developers Conference 2009 – Sessions & Labs.

Off the top of my head I think I will be keeping an eye on:

  • Advanced Debugging

  • Cocoa Tips and Tricks

  • Concurrent Programming in Cocoa

  • Effective iPhone App Architecture

  • Embedding Maps in iPhone Applications

  • Performance Tuning with Shark on Mac and iPhone

  • User Interface Design for iPhone Apps

Which ones do you have your eyes on?

 

WWDC09

WWDC09BadgeI am happy to report that I will be attending WWDC this year!  It will be my first time at the conference and I couldn’t be more excited.

I’m looking forward to “drinking from the fire hose of knowledge”, meeting all the great developers that I look up to, having drinks with friends that I’ve only met online, and soaking up as much knowledge as humanly possible in a 5-day period.

If you’re also going to be out there feel free to drop me a line on twitter or leave a comment below!

UICatalog

Reading through Beginning iPhone Development by Dave Mark and Jeff LaMarche I came across his handy link to a fantastic piece of iPhone development sample code: UICatalog.

UICatalog is an Xcode project that uses all of the UI elements contained in iPhone’s UIKit framework.  There are quite a few great nuggets that this code produces such as:

UICatalog1UICatalog2UICatalog3

Typinator and Xcode

I recently acquired a free license of Typinator through MacHeist and have been loving it.  I put together a set of abbreviations for the text macros that  Xcode provides and it has made my coding life much easier.  A few folks have asked why I’m not using xctxtmacros and the truth is that I didn’t know about them.  Either way, Typinator is working great.

You can download my set of Xcode Abbreviations here.  Please note that it’s extremely limited as I only included those macros that I need most often.  Leave a comment if there are any that you think I’m missing.

Mac Developer Roundtable 16: Code Reuse

macdeveloperroundtableI had the good fortune of recording another episode of the Mac Developer Roundtable a few weeks ago and that episode is now live on the Mac Developer Network site.

We have a rousing discussion on code reuse and all its pluses and minuses,  I highly recommend giving it a listen.

This episode is free, but the Mac Developer Network also provides a large amount of fantastic premium content including video training courses, free software, software discounts, plus access to other podcasts that are not available to non-members.  Head on over to MDN’s Why Join? page to find out more.

For those of you who aren’t subscribed to the MDR feed through iTunes, here is a direct link to episode 16: Mac Developer Network » Blog Archive » MDR016: Code Reuse.

[NSConference conferenceFor:@”Mac Developers”];

A fantastic conference is taking place in Hatfield, UK on the 16th of April.  Hosted by Scotty of the Mac Developer Network, this conference will be a two-day intermediate-level conference full of geekery, fun, and Cocoa deliciousness.

Click through on the image below to register today!

Review: 1Password

Overview

1passwdicon1Password, by Agile Web Solutions, can best be described as OS X’s Keychain concept on steroids.  To quote their website:

1Password takes care of all your online passwords so you can use strong and unique passwords for every site and never forget any of them!  …  In short, 1Password keeps track of all your web passwords, automates sign-in, guards from identity theft, and allows you to stop worrying about your safety while online.

I was skeptical of this utility before using it, willing to give it a shot after watching their 3 minute movie, and totally sold after using it for a week.

The Good

 

After installing, 1Password looks right at home in the Safari toolbar, providing access to a wealth of functionality.

Whenever I try out new utility software I want it to integrate into my current workflow as seamlessly as possible.  This area is one in which 1Password excels: after installing it I didn’t have to change the way I worked.  1Password just stepped in and took the place of Safari’s keychain integration.  It would have been nice for 1Password to offer to import my keychain passwords, but on the other hand it was nice that it just got out of the way and let me keep working.  Importing your Safari passwords into 1Password is accessible through a menu item.

 

The wallets feature is a fantastic implementation of something that I’ve shoehorned into Keychain Access for years.  It provides a simple, intuitive way to store credit and bank card numbers, software serial numbers, and much more.

Wallets at Work

1Password also provides a feature called Identities, which allows you to set up different sets of personal information that you can use to automatically fill in web forms.  For instance, I currently have two identities set up: Trusted Info and Untrusted Source.  When I visit a site that asks me for registration information I can simply click on the 1Password icon in Safari and fill in the form on that site with my real information (Trusted Info), or, if I think they might spam me relentlessly, my mostly-real information (Untrusted Source).  It’s a fantastic feature that expands upon Safari’s AutoFill functionality in a great way.

One of the mini-workflows that I have put in place for myself recently goes something like this:

  1. Come across a site where I need to register an account, so I choose a user name.

  2. Open Keychain Access and create a new entry for this particular registration.

  3. Use the password generation feature to create a new, random password for that entry.

  4. Copy that password into the clipboard, switch back to Safari and paste the password into the registration field.

Now, with 1Password I have been able to turn those four steps into two: I click the 1Password button in Safari, choose Strong Password Generator from the menu, and, assuming I don’t want to configure my password, hit the Fill button.  When viewing your passwords in the 1Password application you also get a nice password strength indicator for all your passwords so that you can see which ones you may need to beef up a bit.

Four steps reduced to two.

 

 

There are many more features that 1Password touts that I have yet to even touch (Palm and iPhone syncing, Secure Notes and smart categories).  While I can’t vouch for them, if these features have been given the same attention to detail as the rest of the app I’m sure they are fantastic.

The Bad

 

A plethora of import options await you, just not one for the OS X keychain.

One issue that I found a bit frustrating was that there was no way to import my entire OS X keychain.  As I said above, I have shoehorned a lot of information into my keychain over the years and it would have been great to see an intelligent import feature.  The omission is particularly glaring in the face of all the importing that is available.

 

 I tried for a while to come up with additional “bad” things to say about 1Password, but it really is a solid app that has very few poor qualities.

Final Thoughts

Like I said at the beginning of this review, before using 1Password I was pretty sure it had very little to offer me.  I couldn’t have been more wrong.  In a world where time has become a very precious commodity 1Password has streamlined a lot of my workflow.  It may not sound like much, but I find myself navigating the monstrous number of passwords, numbers, and serials much faster and easier than I ever have with OS X’s Keychain Access app.  If you are looking for a beautifully designed, easy to use app that integrates perfectly with, and improves the way you presently work look no further than 1Password.

You can buy 1Password from their website for $39.95 for a single user license, or $69.95 for a family license.

Links

1Password’s site

The $300 Million Button

I am continually amazed how some of the most basic design changes can have profound results.

It’s hard to imagine a form that could be simpler: two fields, two buttons, and one link. Yet, it turns out this form was preventing customers from purchasing products from a major e-commerce site, to the tune of $300,000,000 a year. What was even worse: the designers of the site had no clue there was even a problem.

I was blown away by the revelation that of the 160,000 people that were requesting lost passwords every day only 25% of those people ever came back to complete their order.

The $300 Million Button .

Getting Real: There’s Nothing Functional About a Functional Spec

Some fantastic reality imparted by 37signals.com:

So what should you do in place of a spec? Go with a briefer alternative that moves you toward something real. Write a one page story about what the app needs to do. Use plain language and make it quick. If it takes more than a page to explain it, then it’s too complex. This process shouldn’t take more than one day.

Getting Real: There’s Nothing Functional about a Functional Spec (by 37signals).

NSNotification & NSNotificationCenter

Below you will find the slides and accompanying sample project that I presented at the January 2008 CocoaHeads meeting in Syracuse, NY.  I posted both the Keynote presentation and the PDF export of said presentation.  Because it was an informal gathering I decided to use a few of the Keynote transitions that are fun, but maybe a little over the top.  If this kind of thing bugs you, rock out the PDF version, it just has the slides.

Also, during the meeting a few folks asked about playing sounds and doing speech synthesis, so you will see simple examples of those technologies used in the sample project as well.

NSNotification and NSNotificationCenter (zipped up Keynote version) NSNotification and NSNotificationCenter (PDF version)

Sample Project