1997 23.06 1999

Vol.23 n°6 (#286) june 1998

(ddj_1998_06.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.20 AUTOMATING DESIGN PATTERN IDENTIFICATION

[author : Jagdish Bansiya]

DP++, the tool Jagdish presents here, automates design pattern detection, identification, and classification in C++ programs.

p.30 THE VISITOR PATTERN AND A JAVA GREP UTILITY

[author : W. David Pitt]

One application of the Visitor pattern is the familiar grep utility, which searches for a string pattern in a file. David implements grep in Java.

p.38 DESIGNING CLASS LIBRARIES FOR VISUAL BUILDERS

[author : Arthur T. Jolin, David Lavin, and Susan Carpenter]

It's not enough that other programmers understand your class libraries — visual builders and other code generators have to make sense of them too. Our authors discuss the differences between humans and programs, when it comes to understanding class libraries.

p.44 ANTIPATTERNS

[author : Hays W. McCormick and Raphael Malveaux]

Unlike design patterns, AntiPatterns focus on software failures in an attempt to understand, prevent, and recover from them. To developers, AntiPatterns are a tool that bridge the gap between architectural concepts and real-world implementations.

p.54 DESIGNING TECHNOMADIC SYSTEMS

[author : Steven K. Roberts]

Microship, a technomadic vehicle/environment designed for open-ended coastal and inland travel, depends on embedded systems for everything from navigation to digital-video production.

EMBEDDED SYSTEMS

p.66 68HC05-BASED PERIPHERAL DEVICES: PART I

[author : Derrick B. Forte and Hai T. Nguyen]

In this two-part article, our authors design a Windows 95-based Caller ID peripheral device built around Motorola's MC68HC(7)05P9 microcontroller. In this installment, they focus on the Call ID protocol and hardware design issues.

INTERNET PROGRAMMING

p.74 CGI PROGRAMMING & VISUAL BASIC

[author : Ofer LaOr]

Ofer describes his oCGI2 library, which lets you develop true CGI applications using Visual Basic.

PROGRAMMER'S TOOLCHEST

p.80 DIGITAL SIGNATURES WITH THE MICROSOFT CRYPTOAPI

[author : John Boyer]

The Microsoft Cryptographic API provides a standard function interface you can use to add data security features to 32-bit Windows applications. John examines this API and presents the Digital Signature Library for Microsoft CryptoAPI.

p.86 IMPLEMENTING ASSOCIATIONS

[author : Frank Hellwig]

Maintaining pointer integrity as objects are created and deleted is a complex housekeeping chore. Frank presents an implementation of an associations class built using the Rogue Wave Tools.h++ foundation class library.

COLUMNS

p.98 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Is there a pattern in Apple's decision to jettison the Newton? Michael unravels the whole sorted story.

p.103 C PROGRAMMING

[author : Al Stevens]

Al dives into the Windows CE SDK and comes out with a metronome for his hand-held PC. As its name suggests, the Metronome application is a familiar musical tool that ticks like a clock but at an assigned frequency.

p.107 JAVA Q&A

[author : Kenneth Golomb and Thomas Sorgie]

How do you ensure secure communications from a Java applet? Kenneth and Thomas show how, using HTTPS tunneling for SSL security.

p.111 ALGORITHM ALLEY

[author : Jon Bentley]

New insights into the cost of recursion allow Jon to use this powerful tool more comfortably. And when recursion is too expensive, simple techniques maintain the elegance of recursion, without sacrificing performance.

p.117 UNDOCUMENTED CORNER

[author : George Shepherd and Scot Wingo]

George and Scot take a look at how two COM objects can set up communication scheme where the object calls back to the client when the object is written using the Active Template Library (ATL).

p.121 DR. ECCO'S OMNIHEURIST CORNER

[author : Dennis E. Shasha]

The police commissioner pays a visit to Dr. Ecco's apartment — not looking for trouble, but answers.

p.127 PROGRAMMER'S BOOKSHELF

[author : Chris Jaekl and Paul Lu]

Chris and Paul take on software projects and UNIX programming, by examining Steve McConnell's Software Project Survival Guide and W. Richard Stevens' UNIX Network Programming, Volume 1: Networking APIs: Sockets and XTI, Second Edition.

FORUM

p.10 LETTERS

[author : you]

p.18 NEWS & VIEWS

[author : the DDJ staff]

p.130 OF INTEREST

[author : Eugene Eric Kim]

p.136 SWAINE'S FLAMES

[author : Michael Swaine]