1999 25.02 2001

Vol.25 n°2 (#309) february 2000

(ddj_2000_02.jpg)

p.10 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.23 GJ: A GENERIC JAVA

[author : Philip Wadler]

Generic Java (GJ) adds generic types to the Java language. GJ is compatible with Java, the Java Virtual Machine, and existing libraries. It is also efficient, in that information about generic types is maintained only at compile time, not run time.

p.32 COLLABORATIVE APPLICATIONS AND THE JAVA SHARED DATA TOOLKIT

[author : Joshua Fox]

The Java Shared Data Toolkit is designed to help you write distributed collaborative applications so that groups of users can work simultaneously on a common task.

p.42 JAVA REFERENCES

[author : Jonathan Amsterdam]

Java lets a program refer to objects without preventing those objects from being garbage collected. Jonathan explains how references work and presents useful abstractions that make working with them easier.

p.54 PYTHON SERVER PAGES: PART II

[author : Kirby W. Angell]

Last month, Kirby introduced Python Server Pages and looked at how HTML pages with embedded scripts are translated into compilable JPython code. This month, he examines the Java Servlet side of PSP.

p.62 JAVA, XML, & LITERATE PROGRAMMING

[author : Andrew Dwelly]

Marius, the system Andrew presents here, implements some of Donald Knuth's ideas about literate programs, but uses Java as its programming language, with HTML as the output. In the process, Marius leverages the power of XML.

p.70 OPENCARD FRAMEWORK APPLICATION DEVELOPMENT

[author : Vesna Hassler and Oliver Fodor]

The Personal Computer/Smart Card Interface (PC/SC) and OpenCard Framework emphasize the interoperability of smartcards and card terminals, and the integration of those card terminals into Microsoft Windows.

EMBEDDED SYSTEMS

p.78 THE REAL-TIME SPECIFICATION FOR JAVA

[author : David Hardin]

The Real-Time Specification for Java promises to bring the benefits of Java to real-time developers. David examines the requirements and design decisions that led to the Real-Time Specification for Java, and provides practical examples of its use.

INTERNET PROGRAMMING

p.86 WEBRELAY: A MULTITHREADED HTTP RELAY SERVER

[author : Peter Zhang]

Webrelay is a freely available multithreaded HTTP relay server that authenticates that clients are legitimate users before they are connected to vendor web servers.

PROGRAMMER'S TOOLCHEST

p.98 VISUALIZING NETWORK RESOURCES USING VISIO

[author : Chris Trueman]

Visio is a generic diagram construction tool that just happens to include a powerful visualization engine. Chris uses that engine to write a C++ tool that generates diagrams to represent all the available resources on a Windows network.

COLUMNS

p.105 PROGRAMMING PARADIGMS

[author : Michael Swaine]

You won't need to go to the state of "iDenmark" to know that something smells. And you can bet Michael nose what he's talking about this month.

p.110 C PROGRAMMING

[author : Al Stevens]

Al resurrects S, a homebrew C variant he implemented a decade ago — back before the days of Javascript and VB. His updated version is written in C++, and includes a shell program that tests the interpreter by loading and executing text source-code files written in the S language.

p.115 JAVA Q&A

[author : Ethan Henry and Ed Lycklama]

Our authors show what you can do when Java exhibits classic memory leak behavior — unbounded memory growth leading to poor performance and eventually crashing.

p.123 ALGORITHM ALLEY

[author : Michael J. Wiener]

Michael presents some key optimizations (with source-code examples) that can be made to make RSA algorithm as fast as possible.

p.131 DR. ECCO'S OMNIHEURIST CORNER

[author : Dennis E. Shasha]

Landmines are a nasty piece of work, indeed. Ecco and Liane need to come up with ways to make removing them a safer proposition.

p.135 PROGRAMMER'S BOOKSHELF

[author : Gregory V. Wilson]

This month, Greg examines Mastering Algorithms with Perl, by Jon Orwant, Jarkko Hietaniemi, and John Macdonald, Programming for the Java Virtual Machine, by Joshua Engel, Java for Engineers and Scientists, by Stephen J. Chapman, Introductory Java for Scientists and Engineers, by Richard Davies, the C++ Toolkit for Scientists and Engineers, by James T. Smith, Quantum Computing and Communications, by Michael Brooks, and Steven Roman's Learning Word Programming.

FORUM

p.12 LETTERS

[author : you]

p.18 NEWS & VIEWS

[author : edited by Nicholas Baran]

p.142 OF INTEREST

[author : Nicholas Baran and Amy Lincicum]

p.144 SWAINE'S FLAMES

[author : Michael Swaine]