1998 24.06 2000

Vol.24 n°6 (#300) june 1999

(ddj_1999_06.jpg)

p.8 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.20 DR. DOBB'S JOURNAL 1999 EXCELLENCE IN PROGRAMMING AWARDS

[author : Jonathan Erickson]

Guido van Rossum and Donald Becker are the recipients of this year's Excellence in Programming Awards for their commitment to technical innovation and open communication.

p.23 USING THE COATS-MELLON OPERATIONAL SPECIFICATION

[author : Mark Coats, Mark McCloskey, and Theo Molla]

The Coats-Mellon Operational Specification is a methodology for defining user-based scenarios that represent a complete and accurate model of system behavior. This article describes how the methodology has been used with real-world projects.

p.34 JAVA PORTABILITY BY DESIGN

[author : John J. Rofrano]

Factory classes ensure that application code remains unaware of the platform it's running on. John describes how his team used factory classes when building an e-commerce catalog search engine written entirely in Java.

p.42 CROSS-PLATFORM DESIGN STRATEGIES

[author : Bob Krause]

Bob discusses the cross-platform architecture his company uses when building applications that run on multiple platforms. In doing so, he presents a set of thread classes developed for use on both Macintosh and Windows.

p.50 A DNA SEQUENCE CLASS IN PERL

[author : Lincoln Stein]

The Human Genome Project is a multinational project to determine the entire human DNA sequence by the year 2003. Lincoln describes some of Perl's object-oriented features in his Sequence library, which manipulates DNA sequences.

p.64 EXTENSIBILITY IN TCL

[author : John Ousterhout]

One of the major reasons the Tcl scripting language has been widely adopted is its extensibility. Tcl's creator describes the design decisions he made to ensure this quality.

p.74 WIN32 DRIVERS FOR DIGITAL/VIDEO CAMCORDERS

[author : Thomas Tewell]

The only thing wrong with the emerging class of digital/video camcorders is the lack of software to use them. Consequently, Thomas wrote a complete IEEE 1394 class driver package for Windows 98 and his new Sony DCR-PC10 digital/video camcorder.

EMBEDDED SYSTEMS

p.80 ROTATING A WEATHER MAP

[author : Robert D. Grappel]

Robert describes and implements an algorithm he developed to efficiently perform rotation of graphical weather maps used by airplane pilots. He then suggests techniques you can use to optimize other time-limited computer applications.

INTERNET PROGRAMMING

p.90 CONCEPT-ORIENTED PROGRAMMING

[author : Brian McConnell]

Concept-oriented programming makes it possible to write software that requires far less bandwidth to deliver, and thereby to increase apparent delivery speeds significantly. It also creates a mechanism for disseminating reusable code throughout the Internet.

PROGRAMMER'S TOOLCHEST

p.98 A VIDEO FOR WINDOWS ACTIVEX CONTROL

[author : Ofer LaOr]

Video for Windows lets applications interact with video-capture cards. Ofer describes oVFW, an ActiveX control that encapsulates the Video for Windows API so that Visual Basic applications can easily interact with video-capture cards.

COLUMNS

p.109 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Did Xerox PARC blow it? Has HP lost its way? Can Linux really be for dummies? Michael asks and answers these and other questions.

p.115 C PROGRAMMING

[author : Al Stevens]

Al's project this month is a Jukebox that maintains a list of standard MIDI Format files.

p.121 JAVA Q&A

[author : James Begole, Philip L. Isenhour, and Clifford A. Shaffer]

Can JavaBeans be shared? You bet, and our authors show you how. Their approach is based on a replicated architecture, where each collaborator maintains a copy of the shared data.

p.125 ALGORITHM ALLEY

[author : Bill McDaniel]

QuickSort is nice, but it's usually implemented using statically allocated arrays, and it does not take advantage of already-sorted data. Bill's variation of the Merge Sort addresses both of these weaknesses.

p.130 DR. ECCO'S OMNIHEURIST CORNER

[author : Dennis E. Shasha]

Dr. Ecco and Liane discover that there's an art to putting together the pieces of a geometric puzzle.

p.133 PROGRAMMER'S BOOKSHELF

[author : Gregory V. Wilson]

The focus of Greg's attention this month is The Practice of Programming, by Brian W. Kernighan and Rob Pike; How to Build a Beowulf, by Thomas L. Sterling, John Salmon, Donald J. Becker, and Daniel F. Savarese; Developing Visual Basic Add-ins, by Steven Roman; and Graph Drawing: Algorithms for the Visualization of Graphs, by Guiseppe di Battista, Peter Eades, Roberto Tamassia, and Ioannis G. Tollis.

FORUM

p.12 LETTERS

[author : you]

p.18 NEWS & VIEWS

[author : the DDJ staff]

p.142 OF INTEREST

[author : Eugene Eric Kim]

p.144 SWAINE'S FLAMES

[author : Michael Swaine]