2002 Sessions
Here's the list of all sessions scheduled from MacHack in 2002.
MAC OS X
INSTALLER.APP -- A PAX ON YOU: APPLE'S BUILT-IN MAC OS X INSTALLER
Bill Coderre
Mac OS X has a built-in installer system. It's a little weird, but it does have a certain charm, and you can use it. We'll start the session with the important stuff: I'll talk about what might change in the near future, what we'd like to improve in the longer-term future, and I'll answer questions and listen to feedback. (Since this session is not covered by a non-disclosure agreement, I can't get too specific, and in any case, I certainly can't promise anything. Them's the rules.) In the rest of the session, I'll discuss when, why, and how you should make installers.
UNIX TIPS FOR MACOS X DEVELOPERS
Mike Cohen
You'll learn how the command line can save you time and automate your development. I'll talk about using make & other command line tools, and some simple shell scripting & other tools to simplify your use of the shell, using Fink to install open source software, and using editors like Emacs.
NETWORK KERNEL EXTENSIONS
Joshua Graessley
An in depth look at a shipping example of a network kernel extension, SharedIP. SharedIP is a network kernel extension that shares packets from Mac OS X's networking stack with Classic. SharedIP implements two protocol filters, and one socket filter. An AppleTalk filter intercepts AppleTalk traffic destined for Classic. An IP filter intercepts IP traffic destined for Classic. A socket filter is used to get packets to the Classic application. Session will also contain a brief description of the ethernet demux, general stack architecture, and PF_NDRV sockets.
THE FUTURE OF MAC OS 9 (AKA THE UNDERTAKER'S SKETCH)
Keith Stattenfield
Come hear, for possibly the last time, what the future holds for the venerable and venerated Mac OS 9. If you have questions about what used to be the second best selling operating system in the world, come and ask them!
LINUX AND OS X
Tom Zerucha
In this session we will explore the answers to questions such as: Why should Linux matter to developers working on OS X? Conversely, why should OS X matter to people running Linux? What is the significance of Free/Open/NetBSD? The historical perspective: a GNU start; the Linux democratization; and NeXT and Apple's journey, a peculiar combination of convergence and dance (as both sides ask "who invited them?") We will look at Linux' advantages and things it does well; what OS X (and darwin) does better; reasons why you should try both, and the problems with both that should be solved. We will discuss PPC Linux distributions, GNUifying OS X, and finish with a discussion of the future and where Linux and Apple might fit in.
TOOLS
METROWERKS PALM OS DEVELOPMENT TOOLS
Ben Combee
2002 is a big year for Palm OS. For the first time since the original Pilot 1000 was introduced in 1996, Palm OS devices will be running on a processor other than the Motorola 68K-based Dragonball CPUS. Ben Combee, technical lead for Palm OS tools at Metrowerks, will explain the transition to ARM, and how this will be supported by future Metrowerks tool sets.
HOW TO WRITE A PROFILER
Simon Fraser
Profiling code to obtain performance data should be an important part of the development cycle of any application or system extension. However, this seems rarely to be the case on Mac, since good profiling tools are hard to come by. In this presentation, I will describe how I set about writing a profiling tool. I'll describe some of the hard and interesting problems that cropped up in the development of the data collection engine, and in the application used to view the resulting megabytes of data.
DEVELOPER DOCUMENTATION--FINDING, READING, GENERATING
Matt Morse
Documentation access and generation for developers. An overview of the different ways to find appropriate documentation, emphasizing documentation access through Project Builder's integrated documentation viewer. Also, how to use HeaderDoc to generate HTML documentation for your own code. Includes a discussion of HeaderDoc's new Objective-C support.
A TWISTY LITTLE MAZE - WHY FRAMEWORKS ARE LIKE ADVENTURE GAMES
Sean Parent
A look at where object oriented programming has failed and what is needed to realize the promise of fine granularity code reuse. Hint: Generic and generative techniques aren't the key but you should pick them up along the way, they may be useful on the journey.
BASH METROWERKS
Ken Ryall, Matt Henderson, and Ron Leighty
Questions? Comments? Helpful suggestions? Bring all your questions and concers and they will be heard.
SOURCE FORGE, VNOS, AND THE INTEGRATION OF ALL THINGS BLUE
Ophir Ronen
Taking a software product to market after being left for dead by vulture capitalists is a gratifying thing, especially if you can control and monitor pretty much everything with said product, using just your left pinkie. Ophir will walk through how he designed and implemented the virtual side of Singlestep Technologies, involving a bunch of 1U boxes, 2 19" racks, many cables, calm discussions with vendors, lots of mojo, and some hacked out high level monitor and control expressions using VNOS, a Carbon Mac OS X app, as a graphical shell to keep all that remote hardware and software in line. This presentation is for those wishing to establish a medium to high bandwidth presence for your shop to permit easy but select access for local and remote developers and customers, and for those who want an easy graphical tool to configure, control and monitor chatty machines.
CODEWARRIOR PRO 8 TOOLS FOR MAC OS
Ken Ryall
ALTERNATIVE PLATFORMS
INTRODUCTION TO LEGO MINDSTORMS AND NQC - ADULT
INTRODUCTION TO LEGO MINDSTORMS AND NQC - YOOT'
Dave Baum
Learn to program Lego robots using NQC - a simple C-like language that allows more power and flexibility than the standard software from Lego. This session will cover the basics of getting started with NQC and using it with some pre-built robots.
WEBOBJECTS
Paul Schreiber
In the beginning, there was HTML. Then came CGI, ASP, PHP, CFM, SSI and your regular alphabet soup of web development platforms. Tired of this mess? Sick of rolling your own tools and reinventing the wheel? Want to build web three-tier apps without having to write a single line of SQL? Want to deploy in hours, not days? Then WebObjects, Apple's Java-based web application server, is for you.Let Paul Schreiber show you how WebObjects enabled him to build a newspaper content management system in under four months. He'll cover the process he went through, from technical design considerations (including newspaper-specific issues) to working on an extremely limited budget and finally deploying the app in time for students' arrival for the fall semester.
EXTENDAMAC REVIVAL
Birds of a Feather - roundtable
LANGUAGES
OS X JAVA
Eric Albert
Java is the core of Apple's cross-platform strategy, but it's possible to go beyond the least-common-demoniator approach of cross-platform programming to write Java applications that are also great Mac OS X applications. This session will discuss techniques from simple properties to complex extensible native interfaces that you can use to make your Java applications look, feel, and behave like native Mac OS X applications, without losing the cross-platform support that makes Java attractive. We'll also review some tips and tricks for getting optimal performance out of the Mac OS X JVM and its graphics implementation.
JUST IN TIME OBJC COMPILING
Erik Buck
Objective-C is a mix of ANSI C and Smalltalk. Objective-C shares many of the benefits of Smalltalk, but one of the most attractive benefits of Smalltalk is missing: rapid turn around in the edit, compile, debug cycle. The developer tools provided by Apple provide a foundation for fast compiling, and the Objective-C runtime provides hooks that enable the dynamic loading of code and replacement of old code. With a Just-In-Time (JIT) C compiler, it is possible to edit the methods of an object and test immediately. This session describes a technique for creating a JIT compiler for Objective-C and radically reducing the time consumed in the edit, compile, debug, cycle.
C++'S FORGOTTEN OPERATOR
Jon Kalb
Every experienced C++ class designer's checklist includes the copy constructor and the assignment operator, but often overlooked is std::swap(). This session will discuss how to create swap-savvy classes and why they are essential for exception safe code.
INTRO TO BOOST
Jon Kalb and Mac Murrett
Boost is a collection of freely-available peer-reviewed C++ source libraries. This session will address questions such as:
- What kinds of libraries are included and how good are they?
- How do I get them and what are the usage restrictions?
- What is the relationship between Boost.org and the C++ Standards
- Committee and which Boost libraries will be part of the the next
- version of the C++ Standard?
- How can I find out more and how can I participate?
MAC OS IMPLEMENTATION OF BOOST.THREADS
Mac Murrett
Boost Threads is one of the more likely candidates for standardization into C++0x, the next revision of the C++ Standard. In this session, we examine the Mac OS implementation of this library, from the challenges presented by preemptive multithreading on Mac OS 8.6 and some solutions, to the very philosophy of the library itself.
PYTHON
Paul Schreiber
What is it with computer languages that start with P? Sure you've all heard of Pascal, dabbled in Perl, tweaked some PHP. But have you wrangled with Python? In this session, Paul Schreiber explains what Python is, why you'd want to use it and shows off some stupid and not-so-stupid Python tricks. Learn how to write a port scanner in under a dozen lines, use regular expressions to write your own web client. Find out why you don't need to write shell scripts any more. Wrap your Python scripts with a Cocoa GUI...and more.
PPC ASSEMBLY LANGUAGE
David Shayer
Writing programs in assembly language is passe, now that computers have fast processors and tons of memory. But being able to read assembly language is still an invaluable debugging skill. Understanding the specific code patterns emitted by compilers is especially useful. Come learn about PPC assembly from a debugging perspective.
HIGH ORDER MESSAGES IN OBJECTIVE C
Marcel Weiher
HOM is a mechanism for encapsulating control structurs and other programming patterns by leveraging the Objective-C runtime. It is similar to blocks in Smalltalk and higher order functions in functional languages.
BUSINESS DEVELOPMENT
HACKING THE PRESS: HANDS ON
Adam C. Engst
You've been slaving over a hot compiler for months, and you're finally ready to release the Great American Application. But if you screw up your product release, no one will ever use your brilliant code and elegant user interface. In this session, we will look at several examples of the materials created for real-world product releases, critiquing each one. We'll examine press releases, release notes, Web-based product pages, and more. For each one, we'll evaluate its content and presentation for completeness and efficacy. Our goal? To determine exactly what's necessary in release materials to give your product the best chance of being covered by the press. Although I'll have several real-world examples of release materials, feel free to bring links to your own materials for critiquing as well.
EXTREME PROGRAMMING CASE STUDY
Wes Plouff
Extreme Programming is a lightweight software development process for small teams. It's also an underground movement. We'll discuss the experiences of a programming team that fell into using XP and not only survived, but had fun at work. Find out what XP claims to do and what it can actually accomplish. We'll dissect the practices and pitfalls, successes and failures, and culture clashes with mainstream big-P Process.
BIOINFORMATION
Roundtable
CONTRACTING
Roundtable
YOOT'
REALBASIC CUSTOM CLASSES AND CONTROLS
Adam Atlas
This session is for REALbasic programmers who would like to extend the functionality of REALbasic. Attendees should already have some experience with REALbasic, as the basics will not be covered and there will only be a brief review of the IDE. This session will cover creating custom classes (objects), controls (interface elements), and modules (objects that add global methods, properties, and/or constants), and using toolbox calls in REALbasic. It will also cover using other people's classes, modules, etc. that have been made available on the Internet.
This session will explain classes, modules, and toolbox calls, and then walk attendees through creating examples for each category. Examples include a SpeakString module, that uses a toolbox call to perform simple text-to-speech, a SpeechChannel class that performs complex text-to-speech, and a custom Aqua button subclassed from Canvas.
JAVA FOR TEENS
Andrew Downs and Wes Plouff
Ready to move beyond AppleScript and BASIC? In this hands-on session, we'll give you a taste of the Java programming language. In two hours, you will learn enough to create small programs of your own.
Hour 1: Java basics - includes variables, statements, control structures, imports. How to create a complete Java program. Object oriented programming - objects, methods, interfaces. Why programmers like objects.
Hour 2: Builder basics - using Interface Builder to create good-looking screens. Using Project Builder to put together a program. How to hook your code to things happening on the screen. Debugging techniques.
You should attend this session if you know at least one programming language (AppleScript is fine). It helps if you have studied algebra or geometry in school.
LOGICAL THINKING 1
Maurita Plouff & Andrew Downs
A light-hearted look at the logic required in programming - how do
you break down your idea into something a computer program can
implement? Aimed at beginners but may provide insight for programmers
who haven't had formal training.
LOGICAL THINKING 2
Maurita Plouff & Andrew Downs
Bring in your hack idea, and the group will work out the logical
structures you'll need to implement in code. We will help you figure
out how to go about writing your hack (but won't help you code it.)
Think of it as getting help on your outline!
[/PastShows/MacHack17]
Link to this story
Last updated 2006-03-29




