Archive for May, 2010

Accessorizer 2.0 Configuration Sets

The new version of Accessorizer is out! I’m still amazed at how many Cocoa (including iPhoneOS) developers I encounter who don’t know of this awesome utility. Here are just a few things this app does:

  1. As its name suggests, it will generate the getters and setters for ivars you point it at. It will do this using Objective-C 2.0 @property syntax if you specify it. (I use the 2.0 syntax and revert when I want to customize a getter or setter so i can start with a “standard” usage style.)
  2. Automatically recognize UIKit and AppKit classes and mark the properties as IBOutlets.
  3. Recognize non-object ivars and set their properties as “assign” instead of “retain”.
  4. You can configure defaults for ivar classes (all my NSString and NSData properties default to “copy” instead of “retain”).
  5. Generate all the methods for collections to be nicely Key-Value Observing compliant.
  6. Generate Keyed Archiving and Unarchiving methods for your ivars.
  7. Generate template code for a Singleton class.

That’s really just scratching the surface, but it’s the main functionality I use. As a Cocoa developer, you truly do owe it to yourself to check it out.

What makes me (rather selfishly) consider 2.0 an awesome update, though, is a feature I requested: Configuration Sets. The request grew partly out of encountering co-workers at contracting gigs who didn’t use Accessorizer. There are so many items to customize in the application, a first use could be daunting. If I can say, “Here’s my configuration to get you started,” and pass along my exported Configuration, they’re more likely to use it. (It also helps that they can now feel confident that they can revert after experimenting with settings.)

If I’m working on multiple projects with multiple clients, I can save their specific formatting requirements and switch between Configuration Sets when I change between projects.

If your company has defined formatting standards for the aspects Accessorizer can generate, standardizing with a Configuration Set allows you to quickly bring a new team member up to speed and into compliance.

There are more aspects to Configuration Sets I’d like to see, but they fall on the “magical” end of the spectrum; Kevin has done a great job of implementing the (more than) 80% part of it.

Seriously: Why aren’t you using Accessorizer?

 

WWDC: Eat the Lunch

‘Tis the season for WWDC Survival Guides. I don’t really have anything to add from my post last year, but I want to state an opinion contrary to the prevailing common wisdom: Don’t be afraid to eat the lunches.

Digression: C4 is/was known for its excellent sit-down meals between sessions. At first, it seemed horribly inefficient to an engineer brain to get up after a session, move “all the way” to the banquet room next door, have to pick out a seat again, only to return to the session hall and have to find a new seat–why not just leave my stuff camped in the same seat all day?

But I quickly heeded Wolf’s advice-slash-admonition to find a different group of people to sit with at each change–and the world opened up. If you went to C4 just for the tech sessions, it was worth the cost but you only got the tip of the iceberg. I met well-knowns and unknowns and learned about their products, their consulting and business development experience, and got to know them without pressure. I may not even remember their names right now (I’m terrible with names) but every one of those conversations built community.

I’m not going to claim WWDC lunches will ever approach C4′s, but you can incorporate a bit of the C4 experience into WWDC: Instead of getting together with the same group for lunch every day, take at least two lunches in the cafeteria area. Find a seat at a table with other people you don’t know, and strike up a conversation to find out who they are, what they do, where they’re from. I somewhat unintentionally did this last year, and I promise you: It will open your eyes.

If you’re stuck for icebreakers, here are some old reliables:

  • “What did you think of the Keynote/’State of’ addresses?”
  • “Did you catch yesterday’s Brown Bag session?”
  • “What sessions are you looking forward to?” (earlier in the week)
  • “What was the best session you attended?” (I love this one later in the week)

Asking where someone’s from or how many WWDCs they’ve attended tend to be short answers that don’t lead to conversations. Asking about shipping software can be great–people love talking about their products–but make the interest genuine so it doesn’t feel like an interview or “I’m only asking about yours so I can tell you about mine.”

Bring your business cards. After or during an interesting discussion, ask for one of theirs and offer one of yours. Periodically review the cards you’ve received during the week to refresh your memory of names and topics–you’ll be surprised how often you’ll run into those same people later.

Keep your own badge visible as much as possible to make it easy to approach you and ask about your company or just say “your name sounds familiar, did you…?”

For more advice on networking, check out Brent Simmon’s “Advice to new developers on networking”.

For more tips on WWDC, Jeff LaMarche’s “First Time Guide” contains nothing but tips I completely agree with. (Except my serious personal aversion to sleeping in public, including on planes.) Wait, I have one extra note: Plan to stow your gear before attending the Thursday Bash. I had my laptop backpack one year, and was miserable.

[C4 dealloc]

There’s no way I’m going to fit into a tweet my feelings of Wolf Rentzsch’s announcement of the end of the C4 conference.

Last year was the first I’d managed to go to C4. I was glad I was attuned enough to the community to get into the short registration window; I was overloaded and overwhelmed by the conference itself and the people I met; I was desperately hoping to go again this year.

I guess I’m one of the silent apologists in regards to Section 3.3.1. I understand Apple not wanting to support backward compatibility going forward for a third-party dev environment, but I think it’s foolish of them to have called out something virtually unenforceable, and any claim of “crap apps” inherently generated from a Flash source only makes the current existence of crap apps on the App Store that much more ugly.

The speakers he brought in, the way he reacted to disrespect of a speaker, the statements he’s made in public and in person–Wolf’s decision seems perfectly self-consistent. He obviously feels Apple’s decision here affects him and the community more than I do. Even though our opinions differ, I respect his opinions and admire the strengths of his convictions.

Those same opinions and convictions gave C4 a unique character. In a time when there is a surfeit of excellent conferences to choose from, C4′s absence will leave a void.

I encourage all those who feel as strongly about Section 3.3.1 as Wolf does to start (or continue) to speak out about it. I may not be with you, but I’m not against you.

[super dealloc];