November was a busy month for my career. Not only did I change jobs (again) but I had three separate speaking engagements.

CocoaHeads, DC

On November 2, I gave a whirlwind tour of Xcode 4 (highlights from my Xcode book) to the nice folks at the DC CocoaHeads meetup. Side note: LivingSocial has a great office space.

iDeveloper Live Podcast

I was also a guest on episodes 34 (November 21), and 35 (November 28) of the iDeveloper Live podcast. The hosts, Steve “Scotty” Scott and John Fox – graciously allowed me to blather on about (you guessed it) Xcode 4. Episode 34 was about its good side; episode 35 was a gripe-fest. I felt rather bad about spending nearly an hour complaining about a tool that is rather good, in spite of its faults. All month long, Scotty had been giving away e-book copies of Mastering Xcode 4.

Thanks to my hosts for the opportunity to speak and thanks to all those who listened patiently to my dimwitted jokes. :-)

 

Mastering Xcode 4Well that’s that. The Xcode 4 book is finished and currently being printed (and prepared for digital sale in a number of formats as well). You can preorder it now if you like. See the official announcement for (un)specific dates.

Special thanks to the crew at Peachpit (Cliff, Myrna, Scout, Robyn, Kim, and the design team I didn’t get a chance to work with directly). Thanks to all my friends and colleagues for their support and to Matt for putting up with the whole thing. Thanks to Cyril and Colin for allowing me to use their work while writing the book. Finally, thanks to Duncan for getting me in touch with Cliff.

 

I had written previously (twice) about missing debug symbols and strangeness related to compiler optimization in Xcode. I’d specifically mentioned per-file compiler flags. You may be wondering where they went in Xcode 4. “Ur flagz … let me show you them.”

The “old way” (Xcode 3 and lower) was per-file. That is, no matter the build target, the same source file would use the same per-file compiler flags. In Xcode 4, you have somewhat better control as you’re now allowed to set per-file flags per-target. That is, select your project in the Project Navigator, select the relevant target (you may have only one), then select the Build Phases tab. Expand the Compile Sources phase and viola! A Compiler Flags column lets you set each file’s flags for that target.

It would be nice to be able to further break it down into per-file-per-target-per-build-configuration so we can only apply -funroll-loops and -O3 to targets built for release. That’d save a lot of headaches when you’re suddenly jumping around wildly in the debugger when you enter a for loop.

 

Another quick Xcode debugging tip: If you experience “orange breakpoints” when debugging and have verified you’re in debug mode, and have cleaned and rebuilt your target to no avail, try disabling “Load Symbols Lazily” in Xcode’s Debugging preferences panel.

 

Several people have asked me privately to let them know when the book comes out. It seems e-mail is the preferred method for those who (for reasons I can’t possibly fathom) don’t feel like keeping up with the Social Web. So I created a mailing list for the Xcode 4 Book site.

For those who want details: I used Mail Chimp to create and manage the list. Since I’m using WordPress 3, I downloaded the sign-up list plug-in supplied by Mail Chimp. I don’t plan to send frequent updates, only major news (like the release of the book or a new edition, etc.). Of course unsubscribing is an option. :-)

 

I decided to create a separate site for posting news, errata, examples, etc. for the Xcode book titled Develop Apps with Xcode 4, which I’m writing for Peachpit Press. You can see it at xcodebook.com and follow the Twitter account @xcodebook.

I did this so that I could keep more personal announcements or commentary here on my own site while maintaining some semblance of professionalism on the book’s site. I’ll still mention the book here but for every incremental little piece of news, I’d suggest following @xcodebook or the RSS feed at xcodebook.com.

 

It’s been about a month and a half since I announced I’m writing an Xcode 4 book for Peachpit Press. I thought I’d give a little status update for those who keep asking me about it – something more substantial than “I’m writing as fast as I can, you damn vultures!” :-)

Where Am I?

I’m very rapidly approaching the half-way point of the raw production work. That means the pure writing-and-creating-screenshots stage is almost half-way done. Of course there is the technical review and editing part and probably a bit of last-minute worriment and trouble as there always is with any reasonably-sized project. The basic cover design is already decided but I haven’t seen any of the actual layout of the content yet. It’s well on its way to being a book and now almost as long as one of my average e-mails or telephone conversations.

Wait, What?

A very comical – but thankfully very brief – misunderstanding arose last week. Born of the inadequacies of e-mail, speed-reading, and my own inevitable insecurity over doing something new, I nearly had the rare trifecta of heart attack, stroke, and aneurism. True multitasking, folks.

Cliff (the executive editor) told me he’s actually a little worried. Kim, my book editor says I’m a pleasure to work with. He immediately followed that sentence with, “you’re not trying hard enough.

In a rare moment of abject horror, my mind raced with questions like, “Why didn’t you tell me sooner?” and “What specifically is wrong?” Hoping for some clue, I re-read the paragraph. Then I got the joke. We’d been joking back and forth that, due to my often R-rated sense of humor I’m trying to scare Kim away. He was worried about me because, due to Kim’s compliment, I wasn’t trying hard enough to scare her away.

Yes, I’m still laughing thinking about it. Cliff seemed somewhat aghast to have caused such grief but to my credit he could see how I would’ve misread it at first. He assured me I’m doing fine, so I’m relieved. I’m also mildly amused that Cliff seemed to feel a little bad about actually paying me a compliment. That’ll teach’im. :-)

Faster, Damn You!

That said, I am a little behind schedule in the strictest “this chapter is due on this date” sense but some chapters are longer than others so there’s no worry so far. One earlier chapter remains incomplete due at first to the Xcode beta not cooperating and now due to just finding the time to get back to it and finish it. Another chapter caused difficulties initially because of beta issues but grew to “do I want to introduce this now or later?” and “is this basic or advanced stuff?” Decisions, decisions. Then I was sick as hell for half a week.

Conclusion (or Wrapping Up if You’re Kim)

So it’s coming along. I’m looking forward to concluding/wrapping up the book and unleashing it unto the very supportive Cocoa community. Sadly it’s time I can’t spend developing Lamp.app, my desktop answer to all the Flashlight iOS apps out there.

If you’re wondering about the conclusion/wrapping up thing, it was the one thing Kim and I actually punted back and forth over. Lacking imagination, my first chapter concluded with a section titled “Conclusion.” She felt it sounded a bit too formal (she used the phrase “high-school essay”). She suggested “Wrapping Up” or something “fun.” Now I would personally have loved to make the book funny-bordering-on-ridiculous a la the For Dummies series. After all, most of my blog posts and e-mail responses – even at work – tend toward “smart ass,” but after trying to choose a funny title, I decided overt comedy would be too a hard sell. I settled for her first choice so that I could blame her for it later.

I’ll try to keep you all updated on the latest. There’s something hilariously conceited about writing about my writing. The Cocoa community doesn’t need another Gemmell to play up the hero worship role but perhaps it could use a conceited prick of an author. There’re plenty of candidates but he who shouts loudest …

 

Now that contractual matters are settled and I’m finishing up the first chapter, I can finally announce my good news. Drumroll, please. I’m writing a book on the up-coming Xcode 4 for Peachpit Press. Yay!

Awhile back, Duncan Campbell asked Twitter if anyone was interested in writing a book on iPhone development or using Xcode (to paraphrase). Duncan has a few books out via Peachpit. I had been thinking about writing Cocoa-related books for the last couple of years but shelved the idea – pun most certainly intended. Self-publishing wasn’t a very attractive option to me because of the time and resources it would take to market it properly. Cut to present (with my thanks to Duncan and Cliff) and it’s now official.

- girlie squeal of excitement -

I’ll leave the details for later but I thought I’d share the title I selected: A One-Night Stand with Xcode 4: Sure it LOOKS clean, but how well do you really know it?

Now I’ll share the actual title kicked back and forth between Peachpit’s marketing team, Cliff, and myself: Develop Apps with Xcode 4: Use Apple’s development tools to start writing iOS and Mac OS applications

It’s just as verbose but not nearly STD-related enough for my tastes. C’est la vie.

It turns out giving a technical book a good title is rather difficult. As any blogger who reads blogs by bloggers who blog about effective blogging knows, titles and summaries should be search-engine-friendly in addition to being well-focused (and ideally with a call to action). All the titles I could think of were shaded by all the popular “series” action phrases like “jump into” and “teach yourself.” I am dutifully ashamed. I trust Peachpit’s marketing team over my own smart ass any day.

Runners up were Xcode 4: The Book, Bob: The Xcode 4 Book, and so on.

I’m already off to a good start and look forward to gaining a following of millions of Xcode 4 minions by second quarter of 2011.

© 2011 Joshua NozziJoshua Nozzi is a Cocoa developer for hire.Suffusion theme by Sayontan Sinha