DDJ, January 2001
Scripting Languages
+ 25th Anniversary Issue

FEATURES

PROGRAMMING & THE PC REVOLUTION

by 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.

PROGRAMMING IN RUBY

by 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.

PHP & HOSTED APPLICATIONS

by 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.

MAKING C EXTENSIONS MORE PYTHONIC

by Andrew Dalke

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

GUI CONSTRUCTION WITH PERL

by 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.

PYTHON'S PYQT TOOLKIT

by Boudewijn Rempt

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

PARSING XML

by David Cox

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

BRING OUT YOUR DEAD

by Dan Farmer

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

MIXIN-BASED PROGRAMMING IN C++

by 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++.

DIGITASCRIPT: A SCRIPTING LANGUAGE FOR DIGITAL CAMERAS

by 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

DOS FOR EMBEDDED SYSTEMS: INTERRUPT LATENCIES

by 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

MANAGING TEAM-BASED WEB DEVELOPMENT

by 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

NQL: THE NETWORK QUERY LANGUAGE

by 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

PROGRAMMING PARADIGMS

by 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.

C PROGRAMMING

by Al Stevens

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

JAVA Q&A

by 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.

ALGORITHM ALLEY

by 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!

DR. ECCO'S OMNIHEURIST CORNER

by Dennis E. Shasha

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

PROGRAMMER'S BOOKSHELF

by 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

EDITORIAL

by Jonathan Erickson

LETTERS

by you

NEWS & VIEWS

by Nicholas Baran

OF INTEREST

by Shannon Cochran

SWAINE'S FLAMES

by Michael Swaine