PyCon DC 2004 Proposal: 60 Minutes of MacPython

Author: Bob Ippolito
Email:bob@redivi.com
Time slot:60 minutes

OS X is a complicated hybrid of technologies from NeXT, MacOS, *BSD. Unforunately for developers, this means that there are more APIs and buzzwords than you can shake a stick at. 60 minutes of MacPython is a whirlwind tour of how to hack all those neat frameworks from Python. This talk is for anyone who owns a Mac, or is interested in how things are "on the other side". Here's an outline of what I want to cover:

Prerequisites
  • A Mac, running OS X 10.2 or later.
  • "Framework build" of Python 2.3.0 or later (will come back to what a framework build is). Comes with OS X 10.3, must be downloaded separately otherwise. Fink version is not a framework build, and can not take advantage of most platform specific features.

Darwin

Description from http://developer.apple.com/darwin/

Beneath the appealing, easy-to-use interface of Mac OS X is a rock-solid foundation that is engineered for stability, reliability, and performance. This foundation is a core operating system commonly known as Darwin. Darwin integrates a number of technologies, most importantly Mach 3.0, operating-system services based on 4.4BSD (Berkeley Software Distribution), high-performance networking facilities, and support for multiple integrated file systems.

Apple Events

Description from http://developer.apple.com/documentation/Carbon/Reference/Apple_Event_Manager/

An Apple event is a high-level event that conforms to the Apple Event Interprocess Messaging Protocol. The Apple Event Manager sends Apple events between applications on the same computer or between applications on remote computers.

Applications typically use Apple events to request services and information from other applications or to provide services and information in response to such requests. All applications are required to support four Apple events that the Finder sends. These events are Open Application, Open Documents, Print Documents, and Quit Application.

Cocoa

Description from http://developer.apple.com/cocoa/

Cocoa is a rich set of object-oriented frameworks that allow for the most rapid development of applications on Mac OS X. Using Cocoa, developers can create full-featured applications in a fraction of the time they would need for procedural languages. Applications from UNIX and other OS platforms can also be brought to Mac OS X quickly by using Cocoa to build state-of-the-art Aqua user interfaces while retaining most existing core code.

Cross-Platform Toolkits (shown as a list, noting bugs, not demonstrated)
  • Tk
  • wxPython
  • pyQt
  • pygame
  • X11
Community
  • MacPython iChat/AIM channel
  • pythonmac-sig
  • pythonmac.org wiki and FAQ

... I'm sure I'll have plenty of questions to answer, which should take me up to 60 minutes :)