1995 21.09 1997

Vol.21 n°9 (#251) september 1996

(ddj_1996_09.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.16 GOAL-DIRECTED SOFTWARE DESIGN

[author : Alan Cooper]

Goal Direction is the design methodology GUI guru Alan Cooper devised to cut through the confusion surrounding software-design problems. Using examples from his own design projects, Alan shows how Goal Direction lets you synthesize solutions that would otherwise never have been possible.

p.24 CUSTOMIZING THE EXPLORER OPEN DIALOG

[author : Al Williams]

Windows 95 uses a special open dialog that allows users to rename files, create directories, and (of course) open files. Al shows how to customize this dialog, using a Delphi 2.0 component.

p.30 CREATING SHAPED UI OBJECTS

[author : Steve Sipe]

CShape, the C++ class Steve presents here, lets you create and manage custom windows, custom controls, and shaped dialog boxes. He then uses the class to build sticky-note and stellar calculator user interfaces.

p.36 WRITING USER-DEFINABLE GUIs

[author : Troy A. Schauls]

User-defined screens let users create and modify data-entry screens. This ability is possible if you use Visual Basic forms that are created, parsed, and compiled into a proprietary format, with only a "system form" in the app's executable file.

p.40 THE JAVA ABSTRACT WINDOW TOOLKIT

[author : Anil Hemrajani]

Anil examines the Java Abstract Window Toolkit (AWT), a portable GUI class library for developing applications and applets. He then builds a text-editor application for Windows 95 and Solaris, along with an applet for Windows 95.

p.46 DATA COMPRESSION WITH THE BURROWS WHEELER TRANSFORM

[author : Mark R. Nelson]

The Burrows Wheeler Transform is an algorithm that takes a block of data and rearranges it using a sorting algorithm. The resulting output block is extremely well-suited for compression.

EMBEDDED SYSTEMS

p.52 A PROCESS GROUP MANAGER FOR OS-9

[author : Peter C. Dibble]

This file manager lets you adapt the OS-9 real-time operating system's I/O system to provide non-I/O services.

NETWORKED SYSTEMS

p.64 IMPLEMENTING A WEB SHOPPING CART

[author : Chris Baron and Bob Weil]

Our authors examine the components of an online catalog, focusing on a virtual shopping-cart system and ways around the shortcomings of HTTP. They then present an online-catalog system implemented in Perl.

EXAMINING ROOM

p.70 EXAMINING THE INSTALL SHIELD SDK EDITION

[author : Joseph Hlavaty]

Joe builds a standardized installation/distribution methodology using the InstallShield integrated installation/distribution program, versions of which are included with Visual C++ 4.1, Visual Basic 4.0, Borland C++ 5.0, Delphi 2.0, Paradox 7.0, and Optima++.

PROGRAMMER'S WORKBENCH

p.78 JAVA, JFACTORY, AND NETWORK DEVELOPMENT

[author : Eldon Metz]

JFactory is a cross-platform screen painter, prototyper, and code generator for Java that lets you concentrate on the design and functionality of your GUI by generating AWT source code. Eldon uses it to build an Internet-based client/server Java application.

COLUMNS

p.88 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Michael strides forth into the field of software design.

p.92 C PROGRAMMING

[author : Al Stevens]

This month, Al answers the fundamental C++ programming questions he posed in August.

p.101 JAVA Q&A

[author : Cliff Berg]

What do you do if the Java AWT's layout managers won't let you build the kind of UI you need? You write your own layout manager, of course, and Cliff shows you how.

p.107 ALGORITHM ALLEY

[author : Edward Sitarski]

To overcome the limitations of variable-length arrays, Edward created a data structure that has the fast constant-access time of an array, but avoids copying elements when it grows. He calls this structure a "Hashed-Array Tree" (HAT) because it combines some of the features of hash tables, arrays, and trees.

p.112 UNDOCUMENTED CORNER

[author : Robert R. Collins]

How does your program know which Intel processor is the current system CPU? Robert looks at the options, including Intel's PUSHF/POPF technique.

p.117 PROGRAMMER'S BOOKSHELF

[author : Lou Grinzo]

Windows 95 is Lou's focus this month, as he examines Migrating to Windows 95: Programmer's Guide to What's New, by Mark Andrews, and Programming Windows 95, by Charles Petzold and Paul Yao.

FORUM

p.8 LETTERS

[author : you]

p.128 SWAINE'S FLAMES

[author : Michael Swaine]

PROGRAMMER'S SERVICES

p.119 OF INTEREST

[author : Monica E. Berg]