1999 25.12 2001

Vol.25 n°12 (#319) december 2000

(ddj_2000_12.jpg)

p.8 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.21 INSIDE DEBIAN HURD

[author : Jerry Epplin]

Debian is a freely available operating system, currently built around on the Linux kernel, that achieves flexibility by adhering to standard POSIX interfaces. And because Debian is kernel independent, the Hurd — a collection of servers that run on top of the microkernel — can also be used with the Debian distribution.

p.30 PORTING ACROSS UNIX AND WIN32

[author : Abdul Sakib Mondal]

Even though UNIX and Win32 are the most common desktop operating systems around, applications written for one platform usually do not work on the other. Abdul ports a load-balancing application first from Sun OS to Linux, then from Linux to Win32.

p.40 THE WINDOWS 2000 CONTENT INDEX

[author : Bartosz Milewski]

The Microsoft Content Index is a search engine integrated into Windows 2000. Bartosz, who was on the Content Index design and implementation team, describes its requirement set, design principles, and technical details.

p.48 MINIRTL: A MINIMAL REAL-TIME LINUX

[author : Peter Wurmsdobler and Nicholas McGuire]

MiniRTL, short for "Minimum Real-time Linux," is a real-time Linux implementation that fits on a single floppy disk.

p.56 VIRTUAL LISTS FOR WIN32

[author : Steve Sipe]

Steve presents CVListCtrl, a class that works in conjunction with the Win32 listview control to provide a virtual list implementation. Unlike normal lists, a virtual list only contains a handful of visible items at any one time.

p.62 THE MACOS FIND-BY-CONTENT ENGINE

[author : Chilton Webb]

The Find-By-Content engine that's part of the MacOS is a system-level search facility that you can embed in your applications.

p.64 AUTOMATIC DETECTION OF POTENTIAL DEADLOCK

[author : John Mount]

Deadlock can occur when a number of consumers (typically threads) access a set of resources in an unacceptable pattern. To combat it, John presents a solution based on run-time lock analysis that analyzes all transactions.

p.74 FILE RECOVERY TECHNIQUES

[author : Wietse Venema]

Wietse investigates the topic of file recovery by reconstructing past behavior and examining deleted file access time patterns and other attributes.

p.82 THE DIGITA OS: AN EXTENSIBLE IMAGING PLATFORM

[author : Carlos E. Vidales and Eugene M. Farrelly]

The Digita operating system from Flashpoint is designed for digital cameras. It supports all the basic camera features (including a GUI), and lets you extend the functionality of devices through scripts and applications.

EMBEDDED SYSTEMS

p.94 BUILDING AN OS-AWARE DEBUGGER

[author : Stewart Christie]

Debugging applications developed to run under real-time operating systems can be difficult, but making debuggers "operating-system aware" can ease the process.

INTERNET PROGRAMMING

p.109 POP3 FOR C++

[author : Laura Michaels]

Laura presents a POP3 implementation written in C++ that you can use for your POP3 client or library to handle SMTP or FTP or some other well-known Internet protocol.

PROGRAMMER'S TOOLCHEST

p.113 INFERNO APPLICATION DEVELOPMENT WITH LIMBO

[author : Phillip Stanley-Marbell]

Inferno is a distributed OS for networked devices and Internet appliances, and applications for it are written in a programming language called "Limbo."

COLUMNS

p.123 PROGRAMMING PARADIGMS

[author : Michael Swaine]

In addition to taking a look at Apple's public beta of its MacOS X operating system, Michael shares some thoughts about Jef Raskin's The Humane Interface and James Burke's The Knowledge Web.

p.129 C PROGRAMMING

[author : Al Stevens]

While customizing Quincy 2000's Print dialogs isn't necessarily a day at the beach, it is still a boat load of fun.

p.141 JAVA Q&A

[author : Alexandre Pereira Calsavara]

String searching is a basic operation for just about any application. Alexandre presents a small class that uses regular expressions to add powerful string search capabilities to Java.

p.149 ALGORITHM ALLEY

[author : Timothy Rolfe]

If you need fast searching capabilities, AVL trees might just be what you're looking for.

p.155 DR. ECCO'S OMNIHEURIST CORNER

[author : Dennis E. Shasha]

Genetics, protein networks, and a Russian physicist are among the challenges Ecco and Liane face this month.

p.159 PROGRAMMER'S BOOKSHELF

[author : Lou Grinzo and Jacques Surveyer]

Lou takes a look at Tom Swan's GNU C++ for Linux, by (you guessed it) Tom Swan, while Jacques examines Scott Ambler's Process Patterns: Building Large Scale Systems Using Object Technology.

FORUM

p.10 LETTERS

[author : you]

p.18 NEWS & VIEWS

[author : Nicholas Baran]

p.166 OF INTEREST

[author : Shannon Cochran]

p.168 SWAINE'S FLAMES

[author : Michael Swaine]