Volume Number: 26
Issue Number: 07
Column Tag: Conferences
by Dave Dribin
What is NSConference?
NSConference is a multi-day conference put on by the venerable Steve "Scotty" Scott of the Mac Developer Network. Scotty does a lot of wonderful things for the Mac and iPhone developer community, including his podcast, the MDN Show. In 2009, he decided to branch out into putting on his own conference. This first year, the conference took place only in the United Kingdom. For 2010, Scotty expanded the conference to the United States and put on the conference in both the UK and US. In interest of full disclosure, I was a speaker at this year's conference.
There were three days of sessions and one day of longer training workshops. The three session days were broken down into two days of Mac-related sessions and one day of iPhone-related sessions. As with most Mac and iPhone-related topics, however, there was a lot of crossover between the two types. For example, my talk was on clean code was part of the Mac sessions, but pertained equally well to iPhone programmers (at least I hope it did).
The sessions at the UK and US versions were generally the same. There were minor differences due to scheduling conflicts, and the speakers were free to change up their presentation slightly. I've included a list of all the sessions at the end of this article. The full-day workshops were classes concentrating on a single topic. The topics were generally quite technical in nature. Some were about specific APIs or technology, along the lines of presentations you might expect at Apple's WWDC. Others were topics that you would never see at an Apple sanctioned conference, and still others were more abstract in nature.
I was lucky enough to be invited to speak at this year's conference, which means I got to attend both the UK and US versions. The UK version was held in Reading, not too far from London, and the US version was held near downtown Atlanta, Georgia on the Georgia Tech campus. The UK version had the day-long workshops first, followed by the Mac and iPhone sessions while the US version had the day-long workshops after the other sessions.
Each session was about an hour long with about thirty minutes between sessions. The long breaks between sessions were nice because it allowed for socializing with other attendees. While the technical content of the sessions is no doubt the focal point, the social aspects of conferences like WWDC have been of great value to me. I was glad that Scotty recognized this and incorporated it as a core part of NSConference.
I'm not going to give opinions on any of the other sessions, as that would be a little awkward, given that I was a speaker. I can, however give a brief overview of my talk and then list all the presentations. The video of all sessions are available for purchase on the NSConference website. The video for the workshops are not yet available.
My Clean Code Session
My presentation was titled "Clean Code" and while technical, was not about any specific APIs or technology. Writing clean code is very important for real-world projects, in my opinion. While it is important for an application to function properly, it is only part of the problem we programmers face in day-to-day coding. Clean code, to me, is about the quality of the code itself. The quality of the code plays a huge role in how fast new features can be added or bugs can be fixed. Anyone who has been programming for more than a few years knows that spaghetti code is much harder to understand, and hence, to extend or modify.
The core of clean code, to me, is about readability and understandability. The compiler doesn't care how well the code is written or what language it was written in. Thus code should be written with other programmers as a prime audience. A quote I used from the Abelson and Sussman textbook, Structure and Interpretation of Computer Programs adequately describes how I feel about this:
"Programs must be written for people to read and only incidentally for machines to execute."
I gave some specific tips on what clean code is and how to recognize it, such as the Don't Repeat Yourself or DRY principle along with the advantages of small classes and methods. I went over a few "before and after" examples of how shortening methods to about fifteen lines of can drastically help readability. I also discussed the differences between the main techniques to reduce coupling between different layers of the application: delegates, notifications, and key-value observing. If you want to hear more about these topics, along with why I think the singleton design pattern is almost always a design smell and should be avoided, download the full video, complete with some good Q&A.
List of All Sessions
Here is a full list of all the sessions. Remember that if you find any of these interesting, you can purchase videos of many of these on the NSConference website.
"Engineering Life" - Mike Lee
"Spelunking OS X" - Jonathan "Wolf" Rentzsch
"Clean Code" - Dave Dribin
"Signing Your Apps" - Graham Lee
"Data Presentation in Mac Apps" - Drew McCormack
"Core Animation" - Marcus Zarra
"Cocoa Design Patterns that Leverage the Objective-C Runtime" - Jeff LaMarche
"Brushing Up on Open CL" - Andy Finnell
"Meet the User" - Mike Lee
"Hard and Fast OpenGL ES" - Jeff LaMarche
"Core Data Synchronization with ZSync" - Marcus Zarra
"The Physics of Sumo" - Drew McCormack
"Supporting Online Play and GameKit in Your Application" - Jeff LaMarche
"The Many Faces of Data Persistence" - Aaron Hillegass
Dave Dribin has been writing professional software for over eleven years. After five years programming embedded C in the telecom industry and a brief stint riding the Internet bubble, he decided to venture out on his own. Since 2001, he has been providing independent consulting services, and in 2006, he founded Bit Maki, Inc. Find out more at http://www.bitmaki.com/ and http://www.dribin.org/dave/.