2003 Papers
The following papers were accepted for MacHack 2003.
Callbacks in C++
Marshall Clow
Callbacks are a powerful feature in programming. MacOS has used them since 1.0. In this paper, I will explore various ways of implementing callbacks in your application, with focus on modern C++ techniques and interfacing to the Mac OS. Both caller and callee issues will be explored, and various implementations will be examined.
Cross-platform programming: Tcl/Tk for Mac Classic, OS X, Windows and Unix
Clif Flynt
An introduction to Tcl/Tk for the experienced programmer. This tutorial will introduce the flow control, data types, graphics etc.
Hacking PalmOS 5
Jesse Donaldson
Since PalmOS 5.0 has moved to focus on the ARM processor architecture, the traditional method of hacking the system (patching traps) no longer applies. This paper explains how to go about extending the latest release of PalmOS to do new and interesting things, hopefully in a relatively compatible manner. It covers some of the architectural background about what has changed with the move to ARM, as well as some practical information and examples about how to extend the system.
How to Hack Mac OS X
Jonathan 'Wolf' Rentzsch
Mac OS X is a whole new ballgame. The problem is that while the OS got game, we're missing the balls -- hacks. This paper provides an overview of the hacking possibilities on Mac OS X, from the low-level (jump islands, Mach VM calls and single-instruction patching) to the high-level (devious plugins/bundles). Happy hacking!
Implementing a GIF Decoder
Andrew S. Downs
Many client-side applications need to display images, and the GIF format remains popular despite its age. Various libraries exist that can decode GIFs, but sometimes for custom applications you may need a smaller memory footprint or better control over the process. In this paper I discuss the decoding algorithm, and the design and implementation in C++ of a GIF module that can plug-in to a larger image handling architecture.
A Practical Comparison of Multiprocessing Libraries
Paul A. Wilson
The comparative similarity between two or more mutable entities can be determined by assigning a similarity score, based on relative difference, to every possible variant combination between the entities. In this specific case, a program was written to determine the most similar low energy conformations of four molecules which have high efficacy for selective inhibition at the serotonin transporter. The large data set, 1.3 million conformational clusters, used in this endeavor have made multithreading and multiprocessing inviting opportunities. The initial program has been rewritten in three forms which either take advantage of the gcc Objective-C multithreading library, OpenMP, or MPI. These three versions allow for the comparison of Objective-C multithreading library, OpenMP, and MPI strategies on dual processor Power Macs (Mac OS 10.2) and on a nine node, eighteen processor linux Beowulf.
Risks in Using Commerical Wireless Networks
Dennis Luxen
This paper explains the risks in using commercial wireless network (a.k.a WLAN/IEEE802.11b) products as trusted means of communication.
Through this paper I provide an overview of techniques used to enhance and also penetrate built-in security measures of wireless networks. In addition the paper describes simple methods to enhance precautions already taken. There will be a discussion about new techniques & technologies which could be available to the general public and/or authorities soon at the end.
Signing Executables in Mac OS X
Miro Jurisic
Because of prebinding, Mac OS X modifies executable files after they are installed. These modifications change cryptographic signatures of the executables, thus making it impractical to rely on cryptograhic signatures to verify integrity of Mac OS X executables. This paper discusses how cryptographic signatures can be computed for Mac OS X executables in such a way that the signatures are not modified by prebinding.
Systematic Error Handling and Exception Safety in Mixed C++/Objective-C
Mac Murrett and Andrew Pontious
C++ and Objective-C can be used in the same codebase, but their error-handling mechanisms don't mix well without some extra effort. This means careful resource allocation on both sides and translation code at every boundary between them. Sound like too much work? This paper describes the Membrane C++/Objective-C library, which makes these steps as easy as possible - often simple one-liners - while allowing for great flexibility and encouraging rigorous and systematic error-handling policies.
Windows development using CodeWarrior on the Mac
Darrin Cardani
How to do your Windows development using CodeWarrior on the Mac. Nobody likes using buggy tools to write software for a lame platform, least of all MacOS developers. But we all end up writing some Windows code at some point. You can avoid Windows compilers that don't comply with language specs, Windows IDEs that force you to work in 1 window, and even purchasing a Windows machine by using the Metrowerks tools you already have on your Mac. You can even do the debugging on your Mac! And you can even use it with non-application code, like .DLLs and plugins.
[/PastShows/MacHack18]
Link to this story
Last updated 2006-03-29




