Cocoa Design Patterns that Leverage the Objective-C Runtime – Jeff LaMarche

Jeff LaMarche opened the second day, since Matt Gemmell was sick and had to return home. Jeff talked about some main differences in Objective-C and the possibilities of the Runtime. At some point he even mentioned to step away from Copy & Paste, something I’ve been telling Delphi developers for a few years by now :-)

Additionally Jeff gave us some examples of things you can actually do with the runtime like determining the properties, instance methods, class methods and much more while your application is running. If I have to compare it to the good old Delphi, I would think of it of the Delphi RTTI on steroids. He did warn us though that using the Runtime you could get access to stuff Apple doesn’t want you to see or touch. In case of iPhone programming this could lead to your application being rejected on the AppStore.

Brushing Up on OpenCL – Andy Finnell

I have to admit that the session by Andy Finnell was way too technical and complex for me. The talk was about modeling the process in watercolor spreading using OpenCL. The whole concept of Context, Devices and Queues was a bit too much for me though. I left the session with a strange feeling … I suddenly knew I still have a lot to learn … and I had the impression that all painters must be smarter than myself.

Version Control Shoot Out – Dave Dribbin

For some reason people in the room were expecting some kind of Mud fight when Dave Dribin started his sesison on Version Control Systems. There were basically two big camps … on one side the Subversion users and on the other side the Git users …

Dave gave us a brief history of VCS and gave us some Pro and Cons on SVN, DVCS and Git. I have always been using Subversion and never really tried Git, but I guess I should give it a shot some day.

Code Signing – Graham Lee

Next up was Graham Lee with a brief session on Code Signing. The goal is to actually sign your application so it is tied to a unique identification. The great example he gave was if Malicious Monster would create a Malicious Library to attack Safari, they can sign as Malicious Monster or not, but can’t pretend to be anyone else. Apparently that unique ID is also used by other things like Parental Controls. Although this was a short session, I actually found it quite interesting.

The Many Faces of Data Persistence – Aaron Hillegass

Many Cocoa developers have heard about The Big Nerd Ranch, and if you didn’t you have probably read the book Cocoa Programming for Mac OS X by Aaron Hillegass (see our review of the book), and if you didn’t I suggest you go read the book ASAP :-)

Aaron gave a talk about Data Persistence, and repeated that everything is moving to the cloud pretty fast. The concept of Files is dead, Long Live the Cache ! In order for our data to live on the cloud, we will need some way to synchronize that data to our local machines. The session wen through many aspects of storing your data and finally ended with Core Data.

Core Data seems to be a ver good solution, but in some cases it can be a little ’slow’. At first I had no idea what he was talking about. I didn’t use Core Data yet and never heard it was SLOW ! But then he talked about the BNRPersistence which is available under the MIT license and can be downloaded from the Git Repository. BNR Seems to be similar to Core Data, but apparently is a lot faster. He showed us some numbers :

  • Fetch 1M Songs BNR 3.6s CoreData 3.1s
  • Insert 1M songs BNR 12s CoreData 56s 5x
  • Fetch 1K playlists BNR 0.4s CoreData 5.6s 10x
  • Insert 1K playlists BNR 1.2s CoreData 12.0s 10x

Depending on the case BNRPersistence appeared to be between 5 and 10 times faster than Core Data. What’s good is that BNRPersistence works on iPhone as well ! Great news, but I guess I’ll have to learn Core Data first !

Cocoa Rumble = Conference Speakers and Guests

I had no idea what to expect here, but the speakers were being teamed up with some people in the audience and got divided into 3 groups. Each group was assigned it’s Framework (Core Audio, Core Text and Core Image). The goal was to hold a Framework of the Year contets in which each time had a few minutes to create a presentation on why their framework should get chosen as Framework of the Year.

The presentations by all teams were great and fun to watch, but the best presentation was for Core Image and they won the Framework of the Year contest.

More Socializing, More Food and More Cocoa Talks in the Bar

Well, the day ended like the previous one. Plenty of us ended up in the bar getting a few drinks and talking about our project. This time I decided to get to bed a bit earlier and get some sleep. At least, that’s what I intended to do !