Advanced Mac OS X Bootcamp
Advanced Mac OS X Bootcamp is an all-inclusive 5-day Advanced Mac OS X training course for students who have read and understood the first nine chapters of Cocoa Programming for Mac OS X. The class is intensive, and students should be prepared to work hard.
The course is taught mainly in C with some Objective-C.
Upon completion of Advanced Mac OS X Bootcamp, the student will:
- Be able to fully leverage the power of Mac OS X's Unix foundation
- Have mastery of debugging and performance tools
- Be able to write networked applications and daemons
- Be ready to take full advantage of the compiler and linker
- Have experience creating and using Subversion repositories
- Be able to create multithreaded and multiprocess programs
- Be able to use Distributed Objects
Upcoming Classes
| Date | Instructor | Price | Status | Venue |
|---|---|---|---|---|
| Dec 8 - 12 | Mark Dalrymple |
$3500 | Register Now | Atlanta, Georgia |
| Feb 23 - 27 | Mark Dalrymple |
€2800 | Register Now | Frankfurt, Germany |
Syllabus
| Section | Contents |
|---|---|
| Why am I here? | An introduction to the instructor and the course. |
| GCC and Objective-C 2.0 | Create and use macros well, set the flags effectively, and create macros, functions and methods with a variable number of arguments. We'll take a look at GCC-specific extensions and optimization options. Also includes a look at 64-bit programming, Intel-specifc issues, properties, and fast enumerators. |
| Libraries | Create and use frameworks, bundles, static libraries, and dynamic libraries. |
| Command-Line Programs | Even though the Unix command-line is old school, it can still be useful to write programs that can be part of a pipeline. We'll take a look at running processes from the command line, supplying arguments, creating pipelines, environment variables, and more. |
| Memory | Really understand the different flavors of memory: stack, heap, and initialized and uninitialized data segments. A tour of the tools that can help you hunt down memory leaks, and a look at Cocoa garbage collection. |
| Debugging with Gdb | Learn the ins and outs of the debugger, getting comfortable with the command-line power not exposed in Xcode. Includes unit testing and code coverage. |
| Exceptions, Error Handling, and Signals | Error handling is a necessary evil. Learn about errno and Unix errors, setjmp and longjmp, handling signals, blocking signals, exceptions in Cocoa (NS_DURING, @throw), and assertions. |
| File I/O and Permissions | Find out about Buffered and unbuffered I/O, scatter-gather I/O, file permissions, temporary files, set-uid executables, MacOS aliases and resource forks. And that's just the start. |
| NSFileManager | Now that you know the sordid details about files, see how Cocoa hides a lot of the complexity from you. You'll create a simple file browser in Cocoa using NSFileManager. |
| Network Programming With Sockets | Berkeley Sockets, TCP/IP and UDP, and IPv6 |
| CFRunLoop | Here's how to wait for input/output in an event driven application -- without multithreading! Includes Core Foundation and Cocoa classes that give higher level access to the network. |
| Multiprocessing | How to write systems that fork for maximum performance. fork(), pipes, and NSTask are covered. Beware of the Zombies! |
| kqueues | Tired of traditional signal handling and using select() to multiplex I/O? kqueue provides a simple unified model for all that stuff. |
| Accessing the Keychain | Store and read a user's keys from their keychain. |
| Authorization and Authentication | Learn how to create processes that need special privileges using the Security framework. Includes an introduction to code signing. |
| Distributed Objects | Create a client and server that communicate using Distributed Objects. |
| Bonjour | Allow your clients and servers to find each other on the network. |
| Daemons and launchd | How to write well-behaved daemon processes and user agents using launchd. |
| Multithreading | How to write systems that spawn new threads for maximum performance. pthreads and NSThread are covered. |
| NSOperation | Now that you have learned what is hard about threaded programming, see how NSOperation can simplify some of the work. |
| Subversion | Using Subversion for version control. |
| Performance Tuning | Learn how to figure out what is really slowing your program down. Master sampling, profiling, Shark, and Saturn. |
| DTrace and Instruments | Peer into the guts of the operating system while it is running, and use Instruments to diagnose your application's behavior. |
| iPhone | See how things are different, and the same, between Desktop OS X and the iPhone. |
Onsite Training
We offer onsite training for Advanced Mac OS X Bootcamp: we provide an instructor and all class materials. You'll provide the classroom set up, computers for all students, a projector, and a screen. If you find that you'd like to see some customization of the class syllabus to fit a specific project or priority, we can do that too. To get a quote, talk about the syllabus, or ask general questions about onsite training, call us at (404) 527-6211.
What's Included
Class price includes all class materials, a luxury room, three delicious meals a day, a stylish Big Nerd Ranch t-shirt, and ground transportation to and from the airport. Plan to arrive the afternoon or evening before your class begins and depart on the last day of your class after 4 PM.