Current Projects

class-dump

This is a command-line utility for examining the Objective-C segment of Mach-O files. It generates declarations for the classes, categories and protocols. This is the same information provided by using 'otool -ov', but presented as normal Objective-C declarations.

Version 3 is now available. Take a look at class-dump 3.0 for details. I have also moved the archives for the old versions to that site.

Old Projects

Here are some old projects I did for Mac OS X Server 1.2. I don't have any plans to port these to OS X, but all of the source code is available if someone else wants to port them.

Empire for Openstep

Empire is a network multi-player war game for up to three players. Each player begins with one city, and must produce units and explore the world. The world is rectangular, and consists of land, water, cities and units. The object of the game is to destroy your opponents by capturing all of their cities. The game is modelled after "Empire: Wargame of the Century", by Walter Bright and Mark Baldwin.

Risk by Mike Ferris

This is an update of Mike's latest version, which compiles and runs on both Openstep and Rhapsody DR2. I haven't made any changes recently, but it should also work on Mac OS X Server now without much more work.

Fiend

Fiend 2.0 is a dock for Mac OS X Server. This version is based on David C. Lambert's Fiend 1.4.1 source code, which he released on April 1, 1998. It provides multiple, named dock levels, animated app tiles* and undo capability.

Steve's Clock

This is the clock that I use for my dock. It presents the digital clock/calendar, formerly found in Clock.app or Preferences.app, in an animated tile window. It requires the AnimatedAppTile framework (version 1998A or later), and must be on the Fiend dock.

Animated App Tile framework

This is a little framework to enable animated application icons on the Fiend dock under RDR2. I've used it with Scott Hess's TimeMon.app, as well as with a small clock application.

Internal Projects

Terminal Hack

Terminal.app has an extremely annoying bug where Alt-left/right go forward and backward through a list of open windows, but this list is unordered, so if you have more than two terminal windows open at once, Alt-right usually gives you the window to the left. My TerminalHack is a combination of a framework, TerminalHack.framework, that poses as NSApplication and implements -windows to return the list of windows sorted by the upper-left point of the window, and a launcher app (a slightly modified version of the one we use for OmniWeb) that adds this framework to the DYLD_INSERT_LIBRARIES environment variable and then runs the copy of Terminal.app that is in the launcher's app wrapper. (It must be a copy, since Terminal is SUID and so the environment variable would be ignored.)

I suppose it would more likely to be fixed if I actually reported a bug... ;-)

Agenda

This was a calendaring and scheduling application for Mac OS X Server, designed as a replacement for PencilMeIn. It didn't support the groupware stuff that PMI did, but it did have full undo/redo support, all but two of the calendar views, and printing (even including little icon images rotated by multiples of 90 degrees, which is hard since normally composited images don't get rotated. I could even have the views on the screen rotated and you could still edit, drag, and everything. It was pretty cool.)

All of this existed two years ago (March, 1999) and worked under Rhapsody DR2. I did start to port it to X and rewrite major portions of it to make it more Aquaish, but unfortunately I'm being paid to not work on it, so this is unlikely to ever see the light of day. Oh, well.

Valid XHTML 1.0!