Fragment of Your Imaginat
Volume Number: 12
Issue Number: 7
Column Tag: Book Review
Code Fragments Explained
A shared library of procedure pointers for the resourceful programmer
By Mike Scanlin
A Fragment of Your Imagination:
Code Fragments and Code Resources for Power Macintosh and
Macintosh Programmers
copyright line:By Joe Zobkiw
Addison-Wesley, 1995. ISBN 0-201-48358-0.
500 pages (softback with CD ROM). $39.95.
Have you looked at how big the complete set of Inside Macintosh books is nowadays? My
incomplete set is over two feet wide and growing. (I prefer paper to on-line help.)
Does the very voluminosity of this documentation, as Frederick Brooks of Mythical
Man-Month fame would say, represent some new kind of incomprehensibility? I’m
not sure. While I find Inside Macintosh indispensable, I also find it somewhat unwieldy
at times. Fortunately, there are other, more readable sources of truth available. A
Fragment of Your Imagination is one such source.
This book is a kind of a “Cliff’s Notes” for the Code Fragment Manager. It
presents you with discussion and source code for any type of code fragment you might
want to write: LDEFs, CDEFs, WDEFs, INITs, XMCDs, cdevs, thngs, plug-ins, etc. As do
most programming books, it comes with a CD-ROM bearing all the source code in the
book plus a version of CodeWarrior Lite.
There’s little doubt that anyone who wants to write a 68K, PPC or fat code
fragment would find it useful to have a piece of working sample code to start with.
That’s the primary purpose of this book. It gives you examples of each type of code
fragment (LDEF, CDEF, etc.) for each environment (68K, PPC, fat). When you think
about it, there’s not much that can be said on the subject of stand-alone code
fragments. Once you’ve written one or two you pretty much get it and you’re on your
way. But it’s nice to have some hand-holding for that first one, and that’s what this
book does.
I like the fact that this book focuses on useful examples. The entire second half of
the book is source code listings. The first few chapters cover the basics of the Mixed
Mode Manager, Universal Procedure Pointers and Shared Libraries. After that, the
author gets right into it by showing you how to write a fat INIT called MenuScript that
allows you to replace any menu item in any program with an AppleScript. Each of the
next eight chapters covers a different type of code resource, explaining the special
cases that come up for each kind of code fragment, along with some example source on
how to deal with it.
The examples in the book are reasonable. They are one or two steps above
minimum working examples, which is what you want in a code example. If you’re
trying to learn how to patch a trap, for instance, you don’t need 1000 lines of
unrelated code. You just want the minimum to get the job done, plus a little visual
feedback code to make sure it’s being called. The author starts most sections by giving
you the bare minimum of code necessary to write a particular type of code fragment.
He explains how this bit of glue code makes the code fragment work. Then he adds a bit
of unrelated code that does something visual so you’ll know the code is being called and
working. It’s a good way to learn what the minimum code for a particular fragment
type is.
While I liked the straightforward examples, completeness and screen shots, there
are some things I did not like. There are too many cute expressions and attempts at
humor. For example: “The termination routine couldn’t be much simpler without
breaking a law or two.” I guess the author is trying to make the book friendly or
funny, but there are so many of these lines that they come off as a bit childish.
After reading the book I couldn’t help but think that it was physically much
larger than it needed to be. The outer margins are over two inches wide, but that space
is never used for anything. And the leading (vertical space between lines) in the
source code examples is too large. I’d rather see more lines of code on the same page so
I don’t have to turn so many pages when studying it. By the same token, the
commenting style he uses in the second half of the book really spaces the code out
vertically. I’d rather have it more compact. Overall, I couldn’t help but feel that the
author was told to write a 500-page book and was only able to produce 300 or so
pages.
Despite my nit-picking, I have to say this book does the job it set out to do -
inform Macintosh programmers (who have a bit of Mac programming experience
already) on how to write many kinds of code fragments. It’s a nice distilled version of
the relevant tech notes, DTS examples, and Inside Macintosh. I would definitely
recommend it for your first or second code fragment. But if you’ve already done a few
of those you probably won’t get much out of this book.