2000 26.01 2002

Vol.26 n°1 (#320) january 2001

(ddj_2001_01.jpg)

p.8 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.21 PROGRAMMING & THE PC REVOLUTION

[author : Eugene Eric Kim]

Twenty-five years ago, computer programming was big-iron heavy — then the personal computer came along and everything changed. In this special anniversary retrospective, Eugene Kim looks back at what computing was like then, and DDJ's role in that revolution.

p.44 PROGRAMMING IN RUBY

[author : Dave Thomas and Andy Hunt]

Ruby is a freely available pure, untyped, object-oriented language. Dave and Andy show how to use the language, while Yukihiro Matsumoto (Ruby's creator) adds a note on why he developed it.

p.56 PHP & HOSTED APPLICATIONS

[author : Ahmad Abualsamid]

PHP 4 is a server-side scripting language that runs on almost any OS used for web hosting. It also supports numerous web servers including Microsoft's Internet Information Server (IIS), Apache, and AOL Server, and it has native support for multiple database engines.

p.68 MAKING C EXTENSIONS MORE PYTHONIC

[author : Andrew Dalke]

Andrew presents PyDaylight, an object-oriented wrapper for Python that provides the low-level interface to the underlying C libraries.

p.80 GUI CONSTRUCTION WITH PERL

[author : Cameron Laird]

Contrary to popular belief, it is possible to build GUI applications with Perl. Cameron shows how you can start using Perl to build GUIs, then presents some of the options you have when relying on Perl for GUI development.

p.88 PYTHON'S PYQT TOOLKIT

[author : Boudewijn Rempt]

Boudewijn examines PyQt, one of the most advanced Python GUI libraries, focusing on the innovative signals-and-slots paradigm it offers you.

p.96 PARSING XML

[author : David Cox]

David presents his "miniXML" parser for XML that is written in C++ using the Standard Template Library for strings and various containers.

p.102 BRING OUT YOUR DEAD

[author : Dan Farmer]

When it comes to forensic computing, data recovery is of interest to anyone who has lost data.

p.111 MIXIN-BASED PROGRAMMING IN C++

[author : Ulrich W. Eisenecker, Frank Blinn, and Krzysztof Czarnecki]

A mixin is a fragment of a class that is intended to be composed with other classes or mixins. Our authors present a solution to the constructor problem in parameterized inheritance-based mixin programming in C++.

p.126 DIGITASCRIPT: A SCRIPTING LANGUAGE FOR DIGITAL CAMERAS

[author : Rich Robinson]

DigitaScript is a built-in scripting language that provides user-level access to digital camera controls and image and information flow.

EMBEDDED SYSTEMS

p.138 DOS FOR EMBEDDED SYSTEMS: INTERRUPT LATENCIES

[author : Shai Vaingast and Ehud Cohen]

With the emergence of low-power, low-cost, high-processing PC-based embedded-systems solutions, DOS has turned into a serious alternative for embedded applications. However, you still have to deal with the problem of interrupt latencies.

INTERNET PROGRAMMING

p.148 MANAGING TEAM-BASED WEB DEVELOPMENT

[author : Jacob Gsoedl]

Going from a one-person shop to team development brings new requirements, such as the need for a source-code control and versioning applications, that may be familiar to programmers, but not web developers.

PROGRAMMER'S TOOLCHEST

p.158 NQL: THE NETWORK QUERY LANGUAGE

[author : David Pallman]

David created the Network Query Language (NQL) with the new class of "connected" applications in mind — intelligent agents, bots, spiders, middleware, and web apps.

COLUMNS

p.167 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Michael's mixed bag includes database design, business rules, new programming environments, and a look at the cottage industry of books about Steve Jobs.

p.173 C PROGRAMMING

[author : Al Stevens]

Before hitting the road in his venerable DobbsMobile, Al takes his own walk down memory lane and gives Quincy a new compiler.

p.181 JAVA Q&A

[author : Jason Wraxall]

The lightweight controls which come with Sun's JFC Swing framework provide a rich set of interfaces for extending the way they look or behave. Jason extends the JComboBox control using Listener interfaces and a custom data model to make it a little smarter and less prone to error.

p.189 ALGORITHM ALLEY

[author : Paul F. Hultquist and William R. Mahoney]

Reservoir sampling lets you find precisely the right number N of records without any prior knowledge of the number of records in the file — provided that there are enough!

p.193 DR. ECCO'S OMNIHEURIST CORNER

[author : Dennis E. Shasha]

The "Wildfire" Ecco and Liane have to deal with is more than a golden oldie rock hit.

p.197 PROGRAMMER'S BOOKSHELF

[author : Lou Grinzo and Trudy Pelzer]

This month Lou examines Beginning Perl, by Simon Cozens, while Trudy takes a look at Al Williams's Windows 2000 Systems Programming Black Book.

FORUM

p.10 LETTERS

[author : you]

p.18 NEWS & VIEWS

[author : Nicholas Baran]

p.206 OF INTEREST

[author : Shannon Cochran]

p.208 SWAINE'S FLAMES

[author : Michael Swaine]