1996 22.06 1998

Vol.22 n°6 (#266) june 1997

(ddj_1997_06.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.18 LITERATE PROGRAMMING AND CODE REUSE

[author : Sverre Hendseth]

"Literate programming," a concept introduced by Donald Knuth, lets you mix code and documentation in the layout of a program. Sverre implements the Singleton and State patterns to combine a macro processor with literate programming techniques.

p.28 DESIGN PATTERNS, JAVA, AND WEB DEVELOPMENT

[author : Martin Remy]

Worker applets are nonvisual components that labor unseen behind the flashy facades of web pages. Using Java, JavaScript, and HTML, Martin presents three design patterns for incorporating worker applets into web projects.

p.36 DESIGN GUIDELINES FOR IS-A HIERARCHIES

[author : John A. Grosberg]

When developing object-oriented designs, one of your goals should be to define a set of classes that are related hierarchically through inheritance. John focuses on the modeling approach to design. In doing so, he works with Venn diagrams and Object Models.

p.42 DESIGNING FOR TESTABILITY

[author : Fred Wild]

Regression testing is a necessary, but tiresome, task, particularly in complex programs that have dependencies between subsystems. Fred shows how Perl scripts can automate the regression testing process.

p.46 IDLDOC: AUTOMATIC DOCUMENTATION FOR CORBA IDL

[author : Ernest J. Friedman-Hill and Robert A. Whiteside]

idldoc reads in IDL (the OMG's "Interface Description Language") source and generates a set of HTML pages that document the interfaces described in the IDL.

p.54 SBI: THE SMALL BASIC INTERPRETER

[author : Steve Reichenthal and Tom Bennett]

SBI implements a useful subset of Visual Basic. As such, SBI is a powerful scripting language that you and your users can instantly put to work.

EMBEDDED SYSTEMS

p.60 WATCHDOGS FOR INTERRUPT MONITORING

[author : Rolf V. Oestergaard]

Rolf presents IntMon and WdMon, a set of verification and "problem-spotting" tools he wrote to ensure that interrupts are not missed, watchdogs are serviced, and processes don't run too long.

INTERNET PROGRAMMING

p.70 INTERNET SECURITY PROTOCOL

[author : Tom Markham]

Tom examines the IP Security (IPSEC) protocol, a security layer that is part of the IPv6 protocol. IPSEC operates in the IP layer and secures anything using UDP or TCP.

PROGRAMMER'S TOOLCHEST

p.78 AN UNLIMITED UNDO/REDO STACK PATTERN FOR POWERBUILDER

[author : David Van Camp]

David presents a technique for providing unlimited undo and redo capabilities to windows developed using PowerBuilder. He uses design patterns to provide a simple, standardized approach that is easily understood and highly adaptable to a variety of specific problems.

p.88 WEB EXTENSIONS AND APPLICATIONS USING FASTCGI

[author : Scott Dybiec and Philip Rousselle]

By implementing a software layer that receives control from a web server, OpenMarket's FastCGI protocol addresses many of the shortcomings of both conventional CGI and server APIs. Our authors discuss the FastCGI protocol, describe the OpenMarket C programming library for FastCGI, and develop example applications using the OpenMarket library.

COLUMNS

p.107 PROGRAMMING PARADIGMS

[author : Michael Swaine]

From programming languages to free speech on the Internet, paradigm shifts do indeed happen. Michael looks at some paradigms that may (or may not) be in transition.

p.111 C PROGRAMMING

[author : Al Stevens]

Al continues his examination of visual development environments for C++, this month focusing on PowerSoft's Optima++ 1.5. He also takes a peek at Windows CE before (or while) heading for the beach.

p.115 JAVA Q&A

[author : Cliff Berg]

With its built-in security features, Java is among the most secure environments you can program in. This month, Cliff explains how to create a security manager for your applications.

p.123 ALGORITHM ALLEY

[author : John Swartz]

John examines a technique for symbolic integration proposed by James Slagle over 30 years ago. In doing so, he uses CLIPS (C Language Integrated Production System), a nonprocedural language that supports system development across and among three programming paradigms — rule-based, object-oriented, and procedural.

p.129 UNDOCUMENTED CORNER

[author : George Shepherd and Scot Wingo]

The ActiveX Template Library (included with Visual C++ 5.0), a framework for creating COM components, takes care of things such as class object and server lifetime issues, COM identity, and implementing IDispatch.

p.133 PROGRAMMER'S BOOKSHELF

[author : Richard Brath and Ray Duncan]

How data is visualized is the focus of two books this month. Richard Brath examines The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics, by Will Schroeder, Ken Martin, and Bill Lorensen, and Ray Duncan looks at Visual Explanations, by Edward R. Tufte.

FORUM

p.10 LETTERS

[author : you]

p.16 NEWS & VIEWS

[author : the DDJ staff]

p.138 OF INTEREST

[author : Eugene Eric Kim]

p.144 SWAINE'S FLAMES

[author : Michael Swaine]