I’m a Canadian in Japan, teaching English in Elementary Schools. I have a Bachelors of Biblical Counseling. I write programs for making programs (ScriptingLanguages, MacroLanguages, etc.), programs for making teaching resources (handouts, gameboards, card sets, etc.), and programs for recreation (tetris AIs, UnixLikeOperatingSystems in ECMAScript for portability between flash and web browsers etc.)
Some things I am using/working on in my current projects: InvarianceCheckingWithAspectCocoa, ACCurrentMethod (now considered uneccesary), PluginArchitecture, WebKit, DragAndDropTables, NSTextViewAsWiki, FSObject, DOScriptingArchitecture (see DOStrategy).
there’s more but I’ll add them later.
Current Cocoa design pattern thoughts:
Model Manager (Vender) Controller View. I only code the middle three. Model is completely Foundation classes (NSUserDefaults/NSDictionary/NSString… sometimes I add categories to them so that relevant code stays on that layer). Manager only talks to the Model and contains all the application logic for manipulating the data (if it’s of a more general nature I put it in the affore mentioned category on the class itself). Vender is an object implementing a DOScriptingArchitecture protocol and registers itself on launch on a port with the bundle id of the application (usually I vend methods that give access to data without manipulating it). Controller is a delegate/datasource/target for AppKit classes, and that’s all… (it has a reference to a Manager object which it asks about data state, or tells to manipulate the data… but the controller really only responds to and sends messages to ApplicationKit and other NSView sub-classes). View is AppKit.