BareBones Software

Visit our Sponsor:

Bare Bones Software
 

Pre-Conference Training

Registration opens at 8am, and classes begin at 9am.

Cocoa (Chris Hanson)

  • Introduction and Overview of the Camp
  • Object-Oriented Programming and The Objective-C Language
    • OOP basics
      • Review of OOP
      • Classes, instances, messages, and methods
    • Objective-C
      • Declaring and defining classes
      • Sending messages to objects
      • Declaring protocols
      • The dynamic runtime
  • FoundationKit 101
    • NSObject, the root of it all
    • Allocation and initialization
    • Memory management
    • NSString/NSMutableString
  • Lab 1: Introducer
    • Introducer is a simple tool that creates an Introducer object which says hello to anyone and everyone.
    • Using Project Builder and Cocoa Browser
    • Source code organization
    • Logging with NSLog
    • Lab time
    • Stepping through the code for Introducer
  • FoundationKit 102
    • NSNumber
    • NSArray
    • NSDictionary
    • NSData
  • Lab 2: Introducer II
    • Introducer II is an extension of Introducer that creates one Introducer for each name in an array, and uses that to introduce the name.
  • AppKit 100
    • Interface Builder introduction
    • The Target-Action design pattern
  • Lab 3: Currency Converter
    • The currency converter application illustrates the basic use of Interface Builder.
  • Break for Lunch
  • AppKit 101
    • The Model-View-Controller design pattern
    • The Delegation design pattern
    • NSWindow, NSButton, NSTextField, and NSPopUpButton
  • Lab 4: Introducer III
    • Introducer III is an application that lets a user pick a name from a list, and displays the appropriate introduction for each name.
  • AppKit 102
    • NSTableView
    • NSUserDefaults
  • Lab 5: Introducer IV
    • Introducer IV is an extension of Introducer III that allows the appropriate introductions to be entered for each user.
  • AppKit 103
    • The multi-document architecture
    • The text system and attributed strings
  • Lab 6: SimpleHTMLEditor
    • SimpleHTMLEditor is an HTML editor that allows HTML documents to be opened and edited in a two-pane window. The bottom pane is a normal text-editing window, while the top pane shows the styled text.
  • AppKit Brain Dump
    • NSResponder & the responder chain
    • Undo & redo
    • NSView, NSControl, and NSCell

Chris Hanson has been developing software on the Macintosh for thirteen years, and using Cocoa for six. Through his consulting company, bDistributed.com, he does custom Mac OS X development and porting and custom WebObjects development for corporate clients. His weblog is at http://www.livejournal.com/users/chanson/.

Tcl/Tk (Clif Flynt)

  • Introduction to Tcl/Tk
    • Describes why and where Tcl is being used, the language's strengths, and tools for learning, programming, and debugging Tcl code.
    • Introduces Tcl syntax, substitution rules and basic commands.
    • Example: Build a GUI calculator with 30 lines of code.
      • An overview of Tcl/Tk
      • Discussion of Tcl/Tk features
      • Discussion of Tcl/Tk command syntax
      • Describe Tcl variables, assignment, loop commands
      • Describe Tcl/Tk development tools
      • List resources for learning and extending Tcl/Tk
      • Demonstrate building a Tcl/Tk application
    • This session covers:
      • set
      • expr
      • for
      • append
      • exit
      • button widget
      • foreach
      • label widget
      • grid
  • Tcl as Glue
    • Introduces using Tcl/Tk as a wrapper for other programs, starting and retrieving input from the slave tasks, and displaying the output.
    • Example: button bar to automate and organize tasks.
    • Tcl/Tk and Large Program Management
      • Describe the Tcl list variables
      • Introduce Local/Global variable Scope
      • How to create Tcl procedures with a fixed number of parameters
      • How to create Tcl procedures with default values
      • How to create Tcl procedures that accept an undefined number of parameters
      • Invoking new programs from a Tcl script
      • Retrieving status and output from child tasks
      • Displaying large amounts of text
    • This session covers:
      • file commands
      • scrollbar widget
      • text widget
      • eval
      • proc
      • toplevel widget
      • exec
      • list commands
      • file selector widget
      • source
      • cd
      • more grid options
      • switch
  • String Manipulation with Tcl/Tk
    • This session introduces methods for parsing strings using Tcl's list, string and regular expression support.
    • Example: A web robot that will download an html page, parse the page, retrieve a selected item from the page and display a downloaded image on a canvas.
      • Large Program Management with Tcl/Tk
      • Using package and namespace
      • Parsing with string commands
      • Parsing with regular expressions
      • Regular expression syntax
      • Introduce the canvas widget
    • This session covers:
      • string commands
      • regexp
      • regsub
      • http package
      • canvas widget
      • image widget
  • Tcl I/O: Using files, pipes and sockets
    • Introduces Tcl input/output. The lecture discusses reading and writing to files, sockets and other programs.
    • The Tcl associative array is introduced, with examples describing how it can be used to simplify a project.
    • More techniques for using the canvas are described.
    • Example: Using the socket commands to create a client/server shared-whiteboard groupware project application.
      • Client/Server Architecture in Tcl
      • stdin and stdout
      • File channels
      • Sockets
      • Configuring a channel
      • Commands for manipulating associative array elements.
      • Commands for manipulating entire associative arrays.
      • Techniques for data organization with naming conventions.
      • Creating a canvas
      • Creating items on a Tk canvas
      • Manipulating the items on a canvas
    • This session covers:
      • array set/get/names
      • client and server sockets
      • fileevent
      • canvas widget
      • scrollbar widget
      • Complex client/server architecture

Clif Flynt has been a professional programmer since 1978 and a Tcl devotee since 1993. Clif wrote the TclTutor computer-aided instruction package, and writes the "Tclsh Spot" series for ;login: magazine. His books include Tcl/Tk: A Developer's Guide, and Tcl/Tk for Real Programmers. He has taught at the college level, and provided Tcl/Tk training to corporations around the world.

If you are interested in registering for either of these one-day pre-conference training sessions, visit our online registration page.