Paper Presentations
Graphic Elements: Designing a High-Performance, Highly General Graphics
Subsystem
By Al Evans, al@powertools.com
Graphic Elements is a highly general graphics subsystem which offers performance
on a par with dedicated "sprite" systems. A Graphic Element is
an abstract entity that knows how and where to draw itself on a computer
display, and may (or may not) know how to respond to all possible causes
of change in its appear-ance: the passage of time, contact with another
Graphic Element, and direct action by the user. This paper discusses the
design goals set for Graphic Elements, the design decisions made on the
basis of those goals, and the insights gained by the author in the process
of implementing those decisions in the real world of current microcomputers.
Executor Internals: How to Efficiently Run Mac Programs on PCs
By Mathew J. Hostetter and Clifford T. Matthews
Presenter By Cliff Matthews, ctm@ardi.com
Executor is a commercial Macintosh emulator that uses no software from Apple,
but is still able to run much 68k based Macintosh software faster on Pentiums
than the same software runs on 68k based Macs. This paper contains some
implementation details, including descriptions of Executor's synthetic CPU,
graphics subsystem and debugging environment. Portability issues, current
limitations and future plans are also presented.
Experiences Implementing SMTP with PowerPlant
By Christopher Haupt,
cfh@cyberpuppy.com
This paper provides an introduction to the Simple Mail Transport Protocol.
It explains the basic state machine that describes the protocol, and details
the flow of information that encompasses a mail transaction. A Metrowerks
PowerPlant implementation of the basic SMTP mechanism is presented, with
details on how to get started with the PowerPlant networking classes. Some
of the issues you must watch out for with the current class framework are
revealed.
Scriptability: A Bare-Bones Introduction
By Kevin C. Killion, kevin@shsmedia.com
Set aside your IM, AE Registry, and tech notes for the moment. Starting
fresh, let's review the bare essentials you need to start making your app
scriptable. Simple things should be simple, complex things should be possible,
so let's ignore the rampant excesses of the AppleScript spec for now. We
will introduce scripting with a simplified explanation of the concepts,
and follow this up with implementation of a minimal, but very useful initial
set of scripting functions. As an added bonus, we'll consider how to design
your implementation for accessibility from BASIC as well as AppleScript.
Can Software development be elevated from the Microsoft style?
By Oleg Kiselyov, Ph.D.,
oleg@ponder.csci.unt.edu
Microsoft epitomizes bloated and unsafe programming combined with poor design
and trading of quality for speed (and market leverage). This spoils even
good ideas they occasionally have.
This paper is an eclectic study of (mostly C++) programming techniques,
with lots of "good" and "bad" code snippets, and pessimistic
conclusions. The bad snippets are taken from OpenDoc, MacTech magazine,
and code found in trade rags and on the net. To contrast good and bad, the
snippets are rewritten in a better style. Moreover, the paper shows off
and expounds on a few immensely powerful and safe programming techniques,
like nested functions, lazy
objects, stealing of the body, iterators in a local context. Deep obscurity
of these techniques tells however, that resistance is futile and we all
will be assimilated.
Loss-Less Compression : It depends upon what you know
By Chris Russ, jcr6@aol.com
Loss-less compression is exactly what it sounds like. Data is compressed
and later restored to its original form - modem transmission, disk, and
tape storage, and RAM compression all depend upon data being restored EXACTLY
as it was before. But some forms of compression are better than others.
In the last twenty years the field of data compression has changed significantly
both because of better algorithms and faster computers. This paper surveys
the current state of compression and examines some of the pitfalls.
Introducing the Speech Recognition Manager
By Matt Pallakoff and Arlo Reeves
Presenter By Arlo Reeves, arlo@apple.com
You don't have to be a Star Trek fan to know that the computer of the future
will talk and listen. Macintosh computers have already been talking for
a decade. Now any Power Macintosh application can use Apple's new Speech
Recognition Manager to recognize and respond to spoken commands as well.
In this article we'll show you how easy it is to add speech recognition
to your application.
Speech Recognition technology has improved significantly in the last few
years. It may still be a long while before you can carry on arbitrary conversations
with your computer. But if you understand the capabilities and limits of
this technology, you will find it easy to create speech recognition applications
that are fast, accurate, and robust.
This article tells you how to quickly get started using the Speech Recognition
Manager API using illustrated code samples from a simple speech recogntion
application, SRSample, which is included on this issue's CD. You'll also
get some tips on how to make your application's use of speech recognition
compelling, intuitive and reliable. For all the API details, check out the
new Inside Macintosh chapter titled "Speech Recognition Manager,"
also included on this issue's CD.
The Standard Template Library (STL) and Macintosh Programming
By George Geller, 71321.2544@CompuServe.COM
The Standard Template Library (STL) was developed by Alexander Stepanov
and Meng Lee. This large and innovative body of code has been adopted as
an important part of the new ANSI draft standard C++ and promises to dramatically
influence the way C++ programmers work. STL is simultaneously efficient,
general, and compact in representation. Its central paradigm is the decomposition
of programming tasks into generalized algorithms that work on 'containers'.
The containers hold native C++ data types or user-defined objects. This
approach, known as generic programming, drastically reduces the code base
necessary to handle many common programming tasks. In this presentation,
I will introduce STL and show examples of its application in Macintosh programming.
The current state of STL support in Macintosh C++ compilers will also be
reviewed.
Old Possums Book of Practical Objects
By Shane D. Looker, Looker1@aol.com
Object-oriented programming has been promoted as a way to increase code
reusability, code reliability, and get your socks whiter. The potential
is there, but nobody seems to be sharing or selling classes that are truly
reusable. In this paper, several small but powerful C++ base objects are
described that can be taken and used as is, or, by overriding a few methods
extended to fit a specific need in a product. Classes shown are a simple
binary tree class, a FIFO queue, a Boyer-Moore search object, and a simple
keyword class.
The Abuse of Comments
By Michael Rutman, moose@manicmoose.com
For some reason, everyone has heard that you can't overcomment. Nobody says
why you can't, nor does anyone really say what benefits you get from large
comments. They just say they are good. Well, I'll say they can be bad, and
I'll show 3 types of bad comments I have come across: over commenting; to
cover up bad variable names; and poorly worded comments. Following the examples
of bad comments, I'll show some simple coding techniques, which most experienced
programmers already know.
Using and Creating Cryptographic-Quality Random Numbers
By Jon Callas, jon@worldbenders.com
Privacy software needs random numbers for a number of purposes, and these
numbers must be qualitatively different from random numbers used for statistical
software. This paper describes what makes random numbers of "cryptograpic
quality," how to get sources of seed values for pseudo-random number
generators, and pitfalls the unwary programmer can stumble into. It also
includes a high-quality pseudo-random number generator that can be continuously
updated with new observations of randomness.
Home | About | MacHack 96 Info | Top Issues | Resources
Send comments or feedback for these pages to: www-machack@machack.com
Last updated: June 5, 1996 by dpk