Seattle Xcoders Coverage: Golden % Braeburn

I had the opportunity to attend the July 10th meeting of Seattle Xcoders (a local group where Mac OS X Cocoa programmers can connect) that featured Wil Shipley giving a talk on his latest initiative – Golden % Braeburn.

Golden % Braeburn is a company that has been setup to license the storefront used to sell Wil’s most excellent Delicious Library. He tried to find a usable storefront to license since there are many pitfalls to creating your own. Security concerns, state & federal tax nuances, international fees & taxes considerations, interfacing with banks and credit clearinghouses and management of product keys are just a few of the nightmares awaiting those DIY’ers. Mac developers could just use sites like Kagi, but you are then limited by what they provide and must fit into their box. Not being satisfied with any of those options, Wil rolled his own.

With Golden % Braeburn, Wil licenses the full source code to you to do with as you please (except for the removal of the code which calculates his “piece of the action”). If you make changes, Wil will evaluates the efficacy of the feature(s) and can choose to incorporate them into the main codebase to share with other Golden % Braeburn users.

Here’s everything you get:

  • a 100% Cocoa app & app components
  • store front-end
  • store back-end (credit card processor / transaction keeper)
  • remote client (to manage licenses and the store)
  • expo store (allows on-floor credit swipe & receipt/license print)
  • QuickBooks integration
  • on-the fly localization (Wil talked about this library he wrote and it is pretty neat stuff …if you’re a developer)
  • AppleScript integration

Users experience the store within your application as a sheet. The interface is completely customizable and has some advantages over web apps, like population of fields from the Address Book and a much more secure feel when the user clicks “buy”. Everything is automatic – you do not need to sit and respond to license e-mails or hand-generate keys. It is all handled between the front-end and back-end seamlessly.

A Mac Mini has enough horsepower to run the back-end, but you will need a static IP address and a bit of bandwidth. Will highly recommends a RAID configuration for your disks (hey, it is customer data)

There is no sign-up fee. There is no annual fee. There are no monthly fees. There are no fixed per-transaction fees. The only fee is 5% of the transactions that are fulfilled via the storefront. You are still free to sell your wares on any other site. There are other non-GB fees that are required, but you can read more about Golden % Braeburn on their site. The best part about it (in my opine) is that even if Will decides to disband Golden % Braeburn, you still have the source and can continue to use it (without the cut!). Think about what would happen if Kagi went out of business and it was your only means to sell your app.

The talk was highly interactive and it was great to see so many developers interested in this offering. They had double the usual attendance and folks were not afraid to ask questions and challenge assumptions.

When you are in the Seattle area, I highly recommend popping in on the Xcoders meetings. You can find out more about the group and subscribe to their various calendar and content feeds right on the main page.

If you have questions or experiences with about Golden % Braeburn, drop a note in the comments. I can consolidate them and shoot them Wil’s way for response (or encourage him to respond directly in the comments if he has time). Feel free to drop a note with your experiences with his storefront (if you are a Delicious Monster aficionado) or OS X software storefronts in general (the good, bad and ugly).

Book Review: Cocoa® Programming for Mac® OS X, Third Edition

Addison Wesley Professional started shipping the Third Edition of Cocoa Programming for Mac OS X by Aaron Hillegass this month. Hillegass’ book is considered my most to be the de-facto intro-to-OS X programming text. I own (and have now recycled) the first edition of the book and have gone through the majority of the Third Edition (at least reading-wise). Here’s my take on this latest incarnation.

The Text At A Glance

Aaron has a great, teaching-writing style. You definitely get the feel of being in the classroom, learning right from the professor. The preface makes at least two, fairly substantial claims. First, that the nook covers the Objective-C language, Cocoa design patterns and how to use Xcode, Interface Builder and Instruments. And, second, that you will learn 80% of what you need to know to get started programming for the Mac. I have to agree with both claims as you will definitely learn a great deal of the fundamentals of the language and tools and that the book can be used as a reference post-read.

This third edition has been updated to cover Leopard-only technologies (such as garbage collection and Objective-C 2.0) and does a decent job showing where to utilize the new language features and delves into the depths of intricacies of the new memory management facilities in Leopard (and how to code for both Tiger & Leopard). Covering tools like gdb and Instruments is an amazing thing to do, since many programmers are still rely solely on printf or (in the case of Mac programming) NSLog.

The sample applications range from trivial to pretty neat & indicative of real-world Mac programming, error-logic and all. I especially like the challenges in the exercises, many of which have you modify example code, sometimes accompanied by the mantra: “This is hard, and you are not stupid.”

If you are interested at all in programming for OS X or have programmed for the Mac and want to pick up some hints on how code specifically for features in Leopard, Aaron’s books is a must-buy. I’d definitely recommend keeping all of Apple’s updated Objective-C 2.0 information handy as it will fill in the 20% Aaron doesn’t cover and go a bit deeper as well.

The Gory Details

Here is a breakdown of the chapters and what each covers:

  • Chapter 1. Cocoa: What Is It?
  • Chapter 2. Let’s Get Started
  • Chapter 3. Objective-C
  • Chapter 4. Memory Management
  • Chapter 5. Target/Action
  • Chapter 6. Helper Objects
  • Chapter 7. Key-Value Coding; Key-Value Observing
  • Chapter 8. NSArrayController
  • Chapter 9. NSUndoManager
  • Chapter 10. Archiving
  • Chapter 11. Basic Core Data
  • Chapter 12. Nib Files and NSWindowController
  • Chapter 13. User Defaults
  • Chapter 14. Using Notifications
  • Chapter 15. Using Alert Panels
  • Chapter 16. Localization
  • Chapter 17. Custom Views
  • Chapter 18. Images and Mouse Events
  • Chapter 19. Keyboard Events
  • Chapter 20. Drawing Text with Attributes
  • Chapter 21. Pasteboards and Nil-Targeted Actions
  • Chapter 22. Categories
  • Chapter 23. Drag-and-Drop
  • Chapter 24. NSTimer
  • Chapter 25. Sheets
  • Chapter 26. Creating NSFormatters
  • Chapter 27. Printing
  • Chapter 28. Web Service
  • Chapter 29. View Swapping
  • Chapter 30. Core Data Relationships
  • Chapter 31. Garbage Collection
  • Chapter 32. Core Animation
  • Chapter 33. A Simple Cocoa/OpenGL Application
  • Chapter 34. NSTask
  • Chapter 35. The End

(Choosing to cover topics such as threading is a huge plus and not the normal faire for this type of text)

Full book reference information:

Title: Cocoa® Programming for Mac® OS X, Third Edition
Publisher: Addison Wesley Professional
Publish Date: May 05, 2008
Print ISBN-10: 0-321-50361-9
Print ISBN-13: 978-0-321-50361-9
eText ISBN-10: 0-321-56273-9
eText ISBN-13: 978-0-321-56273-9
Pages: 464

You can find it at Amazon (they even have a Kindle-ready version), Safari Books Online and (most likely) at your favorite local bookstore.

List price is $49.99 USD but you can find it in the low $30’s if you poke around.

If you snagged a copy of the tome, drop a note in the comments with your take on the text.

Using Subversion with Xcode 3.0

When you’re coding a huge project in Xcode, and you’ve written all of this awesome stuff, it’s almost done, and the big release is coming soon, that’s when the worst happens:

  1. The hard drive that had all of your code on it dies suddenly
  2. You didn’t have a backup in TimeMachine
  3. Files become corrupted
  4. You remove some important code, or overwrite it, accidentally – and save over your only copy; and you don’t know how you’ll ever manage to rewrite those thousands of lines of code over again
  5. All of the above

This is where Subversion (called “SVN” for short) comes in handy.
Read More about Using Subversion with Xcode 3.0

Open Thread: What’s Your Favorite Programming Language?

While perhaps only our geekiest readers have a favorite programming language, it’s a useful question since so many web workers do know how to code, even if it’s just hacking up JavaScript and PHP on a WordPress installation.
Java, the choice of enterprise IT shops everwhere, isn’t feeling much love online these days: first InfoWorld calls it the new Cobol. Then two professors emeriti say it’s ruining computer science education.
Meanwhile, Ruby-based web framework Ruby on Rails doesn’t seem quite so hot this year as it was last January, Scala’s getting some laughs, and people have been wondering why Erlang’s so buzzy.
So geeks: share your own programming language opinions here. What programming languages do you use right now? Which ones do you love? Are there any you want to take a closer look at? And what programming languages suck, in your (surely humble) opinion?