1995 21.01 1997

Vol.21 n°1 (#243) january 1996

(ddj_1996_01.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.18 PRIORITY QUEUES AND THE STL

[author : Mark R. Nelson]

Included in the C++ Standard Template Library is the priority_queue container adapter, a tool Mark finds perfect for creating Huffman encoding trees.

p.30 DYNAMIC MARKOV COMPRESSION

[author : Tong Lai Yu]

Dynamic Markov Compression is a statistical compression technique that produces good results when applied to large binary files.

p.34 FASTER FRACTAL COMPRESSION

[author : D.R. McGregor, R.J. Fryer, P. Cockshott, and P. Murray]

Our authors explain how fractal compression works, then present the Fast Fractal Transform—a family of algorithms that achieve a several-hundred-fold speed-up over the simple fractal transform.

p.42 DIFFERENTIAL AND LINEAR CRYPTANALYSIS

[author : Bruce Schneier]

Although the venerable Data Encryption Standard has been the workhorse of cryptography for nearly two decades, two new attacks—differential and linear cryptanalysis—are putting DES to the test.

p.50 EVALUATING DATA-COMPRESSION ALGORITHMS

[author : G. Jason Mathews]

Before incorporating data compression into data-management software, Jason had to evaluate a variety of compression algorithms. Here is his report.

p.54 COLOR QUANTIZATION USING OCTREES

[author : Dean Clark]

Octree quantization is a color-quantization technique that's both space efficient and fast. Dean discusses the algorithm, then implements it in C.

p.58 EXTENDING MFC

[author : Stefan Hoenig and Scot Wingo]

Function-based interfaces don't give you object-oriented benefits, even when using C++ and frameworks like MFC. Stefan and Scot show you how to extend existing MFC classes to take advantage of object-oriented principles.

p.66 RAMDOMNESS AND THE NETSCAPE BROWSER

[author : Ian Goldberg and David Wagner]

No one was more surprised than Netscape Communications when a pair of computer-science students broke the Netscape encryption scheme. Ian and David describe how they attacked the popular Web browser and what they found out.

p.107 LINE-SEGMENT CLIPPING REVISITED

[author : Victor J. Duvanenko, W.E. Robbins, and R.S. Gyurcsik]

In an effort to improve line-clipping performance, our authors build on the Cohen-Sutherland line-clipping algorithm, extend it to 3-D, and introduce the Sutherland-Hodgman clipping algorithm.

EMBEDDED SYSTEMS

p.72 PASSWORD FILES

[author : Trevor J. Pope]

Many embedded systems require access control. Trevor implements the MD5 message-digest algorithm to implement one-way encryption of passwords.

NETWORKED SYSTEMS

p.78 TCP/IP AND WINDOWS 95

[author : Andrew Wilson and Peter D. Varhol]

Andrew and Peter present a TCP/IP-based chat program that demonstrates the basics of network communication under Windows 95.

EXAMINING ROOM

p.78 MULTIPLE INHERITANCE FOR MFC 4.0

[author : Jean-Louis Leroy]

Jean-Louis finds out what's required to add multiple inheritance to Version 4.0 of the Microsoft Foundation Classes library.

PROGRAMMER'S WORKBENCH

p.84 A TARGA VIEWER IN BORLAND DELPHI

[author : Gunter Born]

After examining the TARGA graphics file format, Gunter builds a TARGA viewer using Borland's Delphi development environment.

COLUMNS

p.90 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Alan Cooper's ideas about goal-centered user-interface design give Michael food for thought before he returns to public-domain programming languages.

p.118 C PROGRAMMING

[author : Al Stevens]

After attending the Software Development '95 East conference, Al decides it's time to examine the latest in the ANSI C++ standardization process.

p.123 ALGORITHM ALLEY

[author : Bruce Schneier]

Burt Kaliski and Matt Robshaw examine the subject of multiple encryption, paying particular attention to repeated encryption with the same cipher.

p.137 PROGRAMMER'S BOOKSHELF

[author : Charles Pfefferkorn]

If you need to write localized software, books such as Software Internationalization and Localization: An Introduction, Understanding Japanese Information Processing, and Developing International Software for Windows 95 and Windows NT will get you started.

FORUM

p.10 LETTERS

[author : you]

p.144 SWAINE'S FLAMES

[author : Michael Swaine]

PROGRAMMER'S SERVICES

p.140 OF INTEREST

[author : Monica E. Berg]