View all resources


1. Introduction

Books

Advanced Programming in the Unix Environment Amazon BN
Also known as APUE. This is the definitive book on the ins and outs of Unix programming arcana. Includes (also gets bogged down in) historical details on why some of the Unix API's warts exist.


2. A C Refresher, Part 1: The Basics

Books

The C Programming Language Amazon BN
"K&R", the classic C book. It's a little dated, but it's a great read to get the flavor of the originators of the language.

C: A Reference Manual Amazon BN

A comprehensive reference for the various dialects of the C language (K&R C, ANSI C, C99, etc). It's got some typos and some problems with the index, but it has a lot of good information.

Code Samples

Code Samples for Chapter 2 (C Refresher, part 1)
Includes bitmask.c, conditional.c, constants.c, factorial.c, file-1.c, file-1.h, file-2.c, file-2.h, first.c, leaveout.c, limits.c, macros.c, variables.c

Websites

The comp.lang.c FAQ
Tons and tons of information about C and C's dark corners.

Eddie's Basic Guide to C

An on-line introduction to C programming.


3. A C Refresher, Part 2: Pointers, Structures, and Arrays

Code Samples

Code Samples for Chapter 3 (C Refresher, part 2)
Includes array-parameter.c, function-pointer.c, pass-reference.c, strlen1.c, strlen2.c, struct-point.c, tree.c, union.c


4. The Compiler

Code Samples

Code Samples for Chapter 4 (The compiler)
Includes debuglog.m, define.m, describeObjects.m, multilineMacro.m, predef.m, preprocTest.m, vararg.m, warning.m

Websites

Using the GNU Compiler Collection
The documentation for the GNU C/C++/Objective-C compiler.

The C Preprocessor

Complete documentation for the gcc C preprocessor.

Status of C99 features in GCC 3.3

Status of what C99 features work, or are broken, in GCC 3.3.


5. Libraries

Code Samples

Code Samples for Chapter 5 (Libraries)
Includes BundlePrinter.h, adder.h, src0.c, src1.c, src2.c, src3.c, src4.c, useadd.m, SimpleMessage.m (dylib plug-in), ComplexMessage.m (dylib plug-in), bundleprinter.m, projects and files for Adder, BundlePrinter, ComplexMessage (Cocoa plug-in), and SimpleMessage (Cocoa plug-in)

Websites

Making Other People's Software Work for You
CocoaDevCentral's article on making plugins in Cocoa.

Thanks A Bundle!

Andrew Stone's essay on using loadable bundles in your application's architecture.


6. Command Line Programs

Code Samples

Code Samples for Chapter 6 (Command Line Programs)
Includes dumpargs.m, getopt.m, upcase-env.m, upcase-fnmatch.m, and upcase.m


7. Memory

Code Samples

Code Samples for Chapter 7 (Memory)
Includes dataseg.m, limits.m, mallocalign.m, malloccheckstart.m, mallocguard.m, mallochelp.m, mallochistory.m, mallocscribble.m, mallocsize.m, memerror.m, nodepool.m, objectleak.m, openfiles.m, openfiles.m (revised)

Websites

Omni Object Meter
The Omni Group's memory monitoring and optimization tool.


8. Debugging With GDB

Code Samples

Code Samples for Chapter 8 (GDB)
Includes assert.m, assert2.m, memerror.m

Websites

GDB Quick Reference Card
Includes downloadable postscript and PDF files in various page sizes. There are also C and CVS reference cards there.

Grumpy code? gdb it

gdb introduction at MacEdition.


9. Exceptions, Error Handling, and Signals

Code Samples

Code Samples for Chapter 9 (Exceptions)
Includes catch.m, catchblock.m, exception.m, interrupt.m, longjmp.m, open.m, raise.m, syslog.m


10. Files, Part 1: I/O and Permissions

Code Samples

Code Samples for Chapter 10 (Files, Part 1)
access.m, append.m, buffread.m, fbinaryio.m, mmap-rot13.m, readstring.m, readvecstring.m, tempfun.m, uid.m, writestring.m, writevecstring.m


11. Files, Part 2: Directories, File Systems, and Links

Code Samples

Code Samples for Chapter 11 (Files, Part 2)
Includes cheapls.m, permtype.m


12. NSFileManager

Code Samples

Code Samples for Chapter 12 (NSFileManager)
Includes project and files for Remover.


13. Network Programming With Sockets

Books

Unix Network Programming (by Stevens) Amazon BN
In-depth documentation on network programming, including Berkeley sockets. A must-have if you're doing any serious network programming with sockets.

Code Samples

Code Samples for Chapter 13 (Networking)
Includes addresses.m, chatterclient.m, chatterserver.m, simpleclient.m, simpleserver.m

Websites

Beej's Guide to Network Programming
An easy introduction to Berkeley sockets.

Writing Networked Simulations (can you say "games"?)

Matt Slot (of Ambrosia Software) has written a series of essays about issues involved in writing a networked game.

Networking Frameworks Comparison

Stepwise has a survey of various Objective-C wrappers for BSD sockets.


14. CFRunLoop

Code Samples

Code Samples for Chapter 14 (CFRunLoop)
Includes scf-dump.m, projects and files for CFChatterClient and SCFMonitor.

Websites

CFRunLoop Reference
The official CFRunLoop Documentation from Apple

The source code for CFRunLoop

The Darwin source for CFRunLoop


15. Multiprocessing

Code Samples

Code Samples for Chapter 15 (Multiprocessing)
Includes fork.m, pcal.m, pipeline.m, status.m, webserve.m


16. Using NSTask

Code Samples

Code Samples for Chapter 16 (NSTask)
Includes projects and files for SortThem and TraceRoute.


17. Accessing the Keychain

Code Samples

Code Samples for Chapter 17 (Accessing the Keychain)
Includes add_item.m and dumpem.m

Websites

Apple's Security Site for Developers
Documentation for Security-related stuff (including the keychain).


18. Authorization

Code Samples

Code Samples for Chapter 18 (Authorization)
Includes projects and files for four versions of the Remover example.

Websites

CDSA Mailing List
Apple's website where their implementation of the Common Data Security Architecture is dicussed.


19. Distributed Objects

Code Samples

Code Samples for Chapter 19 (Distributed Objects)
Includes projects and source files for chatterd and ChatterClient.

Websites

Apple's Distributed Objects Docs
The "Tasks and Concepts" section for Distributed Objects.


20. Rendezvous

Code Samples

Code Samples for Chapter 20 (Rendezvous)
Includes projects and files for the Rendezvous-aware chatterd and ChatterClient.

Websites

Rendezvous Frequently Asked Questions
Apple's FAQ for Rendezvous

Rendezvous Mailing List

Apple's Rendezvous Mailing List


21. Directory Services

Code Samples

Code Samples for Chapter 21 (Directory Services)
Includes projects and files for UserPictureBrowser

Websites

Open Directory Page
Apple's page for Open Directory. Includes the source.

Open Directory Docs

Apple's Docs (with no example code) for Open Directory


22. Multithreading

Code Samples

Code Samples for Chapter 22 (Multithreading)
Includes basics.m, mutex.m, webserve-thread.m, and project and files for ThreadDraw.


23. Using Distributed Objects Between Threads

Code Samples

Code Samples for Chapter 23 (Distributed Objects Between Threads)
Includes project and files for Mandelbrotter.

Websites

Multithreading with Cocoa Docs
Apple's introduction to multi-threading with Cocoa. Includes a discussion of NSLock and its subclasses. It also includes a short discussion of using NSConnection to communicate between threads.


24. CVS

Websites

The CVS Book
The book Open Source Development with CVS is one of my favorite books on CVS. The PDF of the completesecond edition is available at this website. (for the first edition, only the CVS-related chapters were online).

All your versions are belong to you, An introduction to CVS

MacEdition's intro to CVS.

Subversion

A revision control system designed to be a compelling replacement for CVS.

DLPS CVS Cheat Sheet

This is Beth Kirschner's CVS cheat sheet, giving some quick instructions on some common tasks (including recovering after cvs removing a file)


25. Performance Tuning

Code Samples

Code Samples for Chapter 25 (Performance)
Includes locality.m

Websites

Apple's Performance and Debugging Tools
Includes a download link for the CHUD tools.

Apple's Maximizing Mac OS X Application Performance

This is a collection of tips and hints from Apple on optimizng a number of areas (like text drawing, app launch, memory, etc)




borkware home | products | miniblog | rants | quickies | cocoaheads
Advanced Mac OS X Programming book

webmonster@borkware.com