%%% -*-BibTeX-*- %%% ==================================================================== %%% Bibtex-file{ %%% author = "Nelson H. F. Beebe", %%% version = "3.19", %%% date = "23 March 2007", %%% time = "08:51:35 MDT", %%% filename = "dr-dobbs-2000.bib", %%% address = "University of Utah %%% Department of Mathematics, 110 LCB %%% 155 S 1400 E RM 233 %%% Salt Lake City, UT 84112-0090 %%% USA", %%% telephone = "+1 801 581 5254", %%% FAX = "+1 801 581 4148", %%% URL = "http://www.math.utah.edu/~beebe", %%% checksum = "12873 17910 69923 638012", %%% email = "beebe at math.utah.edu, beebe at acm.org, %%% beebe at computer.org (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "bibliography, BibTeX, Dr. Dobb's Journal, %%% programming, software", %%% license = "public domain", %%% supported = "yes", %%% docstring = "This is a bibliography of publications in %%% Dr. Dobb's Journal: Software Tools for the %%% Professional Programmer (CODEN DDJOEB, ISSN %%% 1044-789X) (formerly: Dr. Dobb's Journal of %%% Computer Calisthenics and Orthodontia), %%% published by Miller Freeman. %%% %%% This file covers the decade 2000--2009. The %%% companion files dr-dobbs-19*.bib cover %%% earlier decades. %%% %%% From version 2.00 of this file, article %%% coverage should be complete from 1982--date, %%% although individual entries may have missing %%% information. %%% %%% At version 3.19, the year coverage looked %%% like this: %%% %%% 2000 ( 272) 2003 ( 110) 2006 ( 1) %%% 2001 ( 273) 2004 ( 0) %%% 2002 ( 233) 2005 ( 0) %%% %%% Article: 889 %%% %%% Total entries: 889 %%% %%% For subscription information, contact %%% %%% Dr. Dobb's Journal %%% P.O. Box 56188 %%% Boulder, CO 80322-6188 %%% USA %%% Tel: +1 800 456 1215, +1 303 678 0439 %%% FAX: +1 303 661 1885 %%% E-mail: editors at ddj.com %%% WWW URL: http://www.ddj.com/ %%% %%% Dr. Dobb's Journal has recently issued CD %%% ROMs with the articles and software from %%% 1988--date, and also offers %%% subject-specialized CD ROMs; see %%% http://www.ddj.com/cdrom for ordering %%% details. %%% %%% This bibliography has been collected largely %%% from the publisher's Web site, with manual %%% correction of article titles, and addition of %%% page numbers. %%% %%% Spelling has been verified with the UNIX %%% spell and GNU ispell programs using the %%% exception dictionary stored in the companion %%% file with extension .sok. %%% %%% BibTeX citation tags are uniformly chosen as %%% name:year:abbrev, where name is the family %%% name of the first author or editor, year is a %%% 4-digit number, and abbrev is a 3-letter %%% condensation of important title %%% words. Citation tags were automatically %%% generated by software developed for the %%% BibNet Project. %%% %%% In this bibliography, entries are sorted in %%% publication order, using bibsort -byvolume. %%% %%% The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% } %%% ==================================================================== @Preamble{ "\hyphenation{ COMM-WHIZ Cogs-well DISK-DOC Gran-uzzo Ku-ma-ra-swa-my Mil-in-ko-vich Mitch-ell OPT-LINK data-bases }" } %%---------------------------------------------------------------------- %% Acknowledgement abbreviations: @String{ack-nhfb = "Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: \path|beebe@math.utah.edu|, \path|beebe@acm.org|, \path|beebe@computer.org| (Internet), URL: \path|http://www.math.utah.edu/~beebe/|"} %%---------------------------------------------------------------------- %% Journal abbreviations: @String{j-DDJ = "Dr. Dobb's Journal of Software Tools"} %%---------------------------------------------------------------------- %% Bibliography entries: @Article{Erickson:2000:EBR, author = "Jonathan Erickson", title = "Editorial: It's Better To Be Rich and Famous, Than To Live Near an Airport", journal = j-DDJ, volume = "25", number = "1", pages = "8--8", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, xxnote = "Comment on Larry Ellison's jet airplane and the San Jose Airport landing time rules.", } @Article{Tucker:2000:LEP, author = "Andrew Tucker and Edoardo Comar and Scott Meyers and Yves Piguet and Kevin Ruland and Greg Hadaller and Jonathan Erickson and Mike Zhilin and Todd Stephan", title = "Letters: Editor Preferences; {Java} Enums; Labor Union Harassment; Smart Pointer Update; Traveling Salesman; Granting Block Grant; Porting to {CE}; Analyzing Algorithms", journal = j-DDJ, volume = "25", number = "1", pages = "10, 12", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVV, author = "Nicholas Baran", title = "News and Views: Volunteers Needed for Weather Simulation Model; {Bill Gates} Meets {Bill Blass} --- Not!; Computer Lemon Law May Debut in {Pennsylvania}; Inventor of {Huffman} Encoding Dies; Green Cards, Not Guest Visas; Online Forums on Electronic Recycling", journal = j-DDJ, volume = "25", number = "1", pages = "18--18", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{McCoy:2000:SP, author = "John H. McCoy", title = "Scripting for {Pnuts}", journal = j-DDJ, volume = "25", number = "1", pages = "21--22, 24, 26", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/pnuts.txt; http://www.ddj.com/ftp/2000/2000_01/pnutdemo.zip", abstract = "Pnuts is a language, API, and interpreter that provides a thin procedural wrapper with an interactive interface for manipulating Java objects. Additional resources include pnuts.txt (listings) and pnutdemo.zip (source code).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:RMS, author = "Michael Swaine", title = "{Rebol} and {E}-Mail Services", journal = j-DDJ, volume = "25", number = "1", pages = "28, 30, 32--34", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/rebol.txt", abstract = "When rebuilding his web sites, Michael looked at a number of scripting languages -- and settled on Rebol. He found it easier to use than many other scripting tools, and the kinds of tasks it makes easy are those involving Internet programming. Additional resources include rebol.txt (listings).", acknowledgement = ack-nhfb, } @Article{Johnson:2000:DSC, author = "Steve Johnson", title = "A Dynamic Select Component for {JavaScript}", journal = j-DDJ, volume = "25", number = "1", pages = "36, 38--42", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/dselect.txt; http://www.ddj.com/ftp/2000/2000_01/dselect.zip", abstract = "Designing a GUI component in JavaScript is different than developing a custom widget in more traditional object-oriented environments. Steve shows you how to do it. Additional resources include dselect.txt (listings) and dselect.zip (source code).", acknowledgement = ack-nhfb, } @Article{Angell:2000:PSPa, author = "Kirby W. Angell", title = "{Python} Server Pages: Part 1", journal = j-DDJ, volume = "25", number = "1", pages = "44, 46--47, 50", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/psp1.txt; http://www.ddj.com/ftp/2000/2000_01/psp100.zip", abstract = "Python Server Pages (PSP) is a server-side scripting engine designed along the lines of Microsoft's Active Server Pages (ASP) and Sun's Java Server Pages (JSP). Additional resources include psp1.txt (listings) and psp100.zip (source code).", acknowledgement = ack-nhfb, } @Article{Savchenko:2000:TFS, author = "Sergei Savchenko", title = "Tools for Flexible Scripting", journal = j-DDJ, volume = "25", number = "1", pages = "52, 54--55", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/flexscrp.txt; http://www.ddj.com/ftp/2000/2000_01/flexscrp.zip", abstract = "Building scripting languages can be a time-consuming tasks. Sergei presents a pair of tools to simplify development. Additional resources include flexscrp.txt (listings) and flexscrp.zip (source code).", acknowledgement = ack-nhfb, } @Article{Yam:2000:EEC, author = "Michael Yam", title = "{EC}: {A} {Euro} Calculator for the {Palm} Platform", journal = j-DDJ, volume = "25", number = "1", pages = "56, 58, 60, 62, 64", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/palmeuro.zip", abstract = "EC, the Euro calculator Michael presents here, involves a number of advanced Palm programming topics, including database and memory management, and the synchronization of data between the device and the desktop. Additional resources include palmeuro.zip (source code).", acknowledgement = ack-nhfb, } @Article{Thomas:2000:EOS, author = "Gary Thomas", title = "{eCos}: An Operating System for Embedded Systems", journal = j-DDJ, volume = "25", number = "1", pages = "66, 68--72, 74", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/ecos.txt", abstract = "The Embedded Configurable Operating System (eCos) is a royalty-free, open-source, real-time kernel, targeted at high-performance small embedded systems. As such, eCos has been specifically designed and tuned to run on 32- and 64-bit microprocessors. Additional resources include ecos.txt (listings).", acknowledgement = ack-nhfb, } @Article{Munro:2000:UHJ, author = "Charlie Munro and Mark Nelson", title = "The Ultimate Home Jukebox", journal = j-DDJ, volume = "25", number = "1", pages = "76, 78--82", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/jukebox.txt", abstract = "Our authors describe how they used MP3 to encode and store on hard disk nearly 300 audio CDs, then networked the music server to create the ultimate home jukebox. Additional resources include jukebox.txt (listings).", acknowledgement = ack-nhfb, } @Article{McMillan:2000:PTE, author = "Mike McMillan", title = "Programmer's Toolchest: Examining {PerlCOM}: {Perl} Meets {Microsoft}'s {COM}", journal = j-DDJ, volume = "25", number = "1", pages = "84, 86--87", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/perlcom.txt", abstract = "PerlCOM, from O'Reilly and Associates, lets you use Perl in any language or application that supports Microsoft Component Object Model (COM) objects. Mike shows you how to use it to extend Visual Basic. Additional resources include perlcom.txt (listings).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPCa, author = "Michael Swaine", title = "Programming Paradigms: Change is Good, but Folding Money is Better", journal = j-DDJ, volume = "25", number = "1", pages = "89, 90--92", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", abstract = "It's more than a change in the weather that has Michael scratching his head this month.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPSa, author = "Al Stevens", title = "{C} Programming: Spinning Purple Larks, Swirling Leaves, Rotating Ellipses", journal = j-DDJ, volume = "25", number = "1", pages = "95--98", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/cprog120.zip", abstract = "Al continues his development of the graphics template library. This month, he adds an ellipse shape to the library implemented as a template class in ellipse.h. Additional resources include cprog120.zip (source code).", acknowledgement = ack-nhfb, } @Article{Travers:2000:JQW, author = "Michael Travers", title = "{Java Q\&A}: What is Interactive Scripting?", journal = j-DDJ, volume = "25", number = "1", pages = "103, 105--111", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/jqa120.txt", abstract = "What is interactive scripting and what does it have to do with Java? Michael answers this question, as he presents Skij, an interactive scripting language for the Java environment. Additional resources include jqa120.txt (listings).", acknowledgement = ack-nhfb, } @Article{Rolfe:2000:AAR, author = "Timothy Rolfe", title = "Algorithm Alley: Randomized Shuffling", journal = j-DDJ, volume = "25", number = "1", pages = "113--114", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_01/aa120.txt; http://www.ddj.com/ftp/2000/2000_01/aa120.zip", abstract = "Card shuffling is an example of putting a fixed number of items into completely random order. Timothy examines a couple of randomizing algorithms -- one that does not generate all permutations with equal probability, and another that does. Additional resources include aa120.txt (listings) and aa120.zip (source code).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOa, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Stars and Starlets", journal = j-DDJ, volume = "25", number = "1", pages = "116--116", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Ecco and Liane do lunch and go Hollywood, as they look for ways to keep a low-budget just that.", acknowledgement = ack-nhfb, } @Article{Woehr:2000:PBA, author = "Jack J. Woehr and Lou Grinzo", title = "Programmer's Bookshelf: All the World's {A} Database", journal = j-DDJ, volume = "25", number = "1", pages = "119--120", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Feb 15 16:26:16 2001", bibsource = "http://www.ddj.com/", abstract = "Databases are the focus this month, as Jack examines the latest edition of C. J. Date's classic {\em An Introduction to Database Systems}, while Lou looks at MySQL and mSQL, by Randy Jay Yarger, George Reese, and Tim King.", acknowledgement = ack-nhfb, } @Article{Baran:2000:Ia, author = "Nicholas Baran and Amy Lincicum", title = "Of Interest", journal = j-DDJ, volume = "25", number = "1", pages = "126--127", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFB, author = "Michael Swaine", title = "{Swaine}'s Flames: Being a Blip", journal = j-DDJ, volume = "25", number = "1", pages = "128--128", month = jan, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EWS, author = "Jonathan Erickson", title = "Editorial: Worker Shortage a Tall Tail?", journal = j-DDJ, volume = "25", number = "2", pages = "10--10", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Samwel:2000:LDS, author = "Bart Samwel and Jiri Soukup and Glenn Crist and Evan Easton and Ron Ruble and David A. Rogers and Al Stevens and Bruce MacDonald and Scott Venckus", title = "Letters: Data Structures as Objects; Real ({Netscape}) Time; Riding the {XML} Bandwagon; Porting to {CE}; Nothing New About {Open Source}; {Y2K} Worries?; Version Control", journal = j-DDJ, volume = "25", number = "2", pages = "12, 14", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVE, author = "Nicholas Baran", title = "News and Views: {ERP} Can Spell Disaster; {Linux} Goes Super; Dot-com Companies Bet the Farm; The Tiniest Transistor; And Speaking of Tiny\ldots{}", journal = j-DDJ, volume = "25", number = "2", pages = "18--18", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", URL = "http://www.ieee.org/conference/iedm", acknowledgement = ack-nhfb, keywords = "Chenming Hu; FenFet", } @Article{Wadler:2000:GGJ, author = "Philip Wadler", title = "{GJ}: {A Generic Java}", journal = j-DDJ, volume = "25", number = "2", pages = "23--26, 28", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/gj.txt", abstract = "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. Additional resources include gj.txt (listings).", acknowledgement = ack-nhfb, } @Article{Fox:2000:CAJ, author = "Joshua Fox", title = "Collaborative Applications and the {Java Shared Data Toolkit}", journal = j-DDJ, volume = "25", number = "2", pages = "32, 34--40", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/jsdt.txt; http://www.ddj.com/ftp/2000/2000_02/jsdt.zip", abstract = "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. Additional resources include jsdt.txt (listings) and jsdt.zip (source code).", acknowledgement = ack-nhfb, } @Article{Amsterdam:2000:JR, author = "Jonathan Amsterdam", title = "{Java} References", journal = j-DDJ, volume = "25", number = "2", pages = "42, 44, 46, 48, 50, 52", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/jrefer.txt", abstract = "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. Additional resources include jrefer.txt (listings).", acknowledgement = ack-nhfb, } @Article{Angell:2000:PSPb, author = "Kirby W. Angell", title = "{Python} Server Pages: Part {II}", journal = j-DDJ, volume = "25", number = "2", pages = "54, 57--61", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/psp2.txt", abstract = "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. Additional resources include psp2.txt (listings).", acknowledgement = ack-nhfb, } @Article{Dwelly:2000:JXL, author = "Andrew Dwelly", title = "{Java}, {XML}, and Literate Programming", journal = j-DDJ, volume = "25", number = "2", pages = "62, 64--66, 68", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/litjava.txt; http://www.ddj.com/ftp/2000/2000_02/litjava.zip", abstract = "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. Additional resources include litjava.txt (listings) and litjava.zip (source code).", acknowledgement = ack-nhfb, } @Article{Hassler:2000:OFA, author = "Vesna Hassler and Oliver Fodor", title = "{OpenCard Framework} Application Development", journal = j-DDJ, volume = "25", number = "2", pages = "70, 72, 74--76", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/ocfjava.txt; http://www.ddj.com/ftp/2000/2000_02/ocfjava.zip", abstract = "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. Additional resources include ocfjava.txt (listings) and ocfjava.zip (source code).", acknowledgement = ack-nhfb, } @Article{Hardin:2000:RTS, author = "David Hardin", title = "The Real-Time Specification for {Java}", journal = j-DDJ, volume = "25", number = "2", pages = "78, 80--82, 84", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/rtjava.txt", abstract = "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. Additional resources include rtjava.txt (listings).", acknowledgement = ack-nhfb, } @Article{Zhang:2000:WMH, author = "Peter Zhang", title = "{Webrelay}: {A} Multithreaded {HTTP} Relay Server", journal = j-DDJ, volume = "25", number = "2", pages = "86, 88, 90--94, 96", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/webrelay.txt; http://www.ddj.com/ftp/2000/2000_02/webrelay.zip", abstract = "Webrelay is a freely available multithreaded HTTP relay server that authenticates that clients are legitimate users before they are connected to vendor web servers. Additional resources include webrelay.txt (listings) and webrelay.zip (source code).", acknowledgement = ack-nhfb, } @Article{Trueman:2000:VNR, author = "Chris Trueman", title = "Visualizing Network Resources Using {Visio}", journal = j-DDJ, volume = "25", number = "2", pages = "98, 100--102", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/visioviz.txt; http://www.ddj.com/ftp/2000/2000_02/visioviz.zip", abstract = "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. Additional resources include visioviz.txt (listings) and visioviz.zip (source code).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPPa, author = "Michael Swaine", title = "Programming Paradigms: The Palm, the Nose, and Other Computing Platforms", journal = j-DDJ, volume = "25", number = "2", pages = "105, 107--108", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", abstract = "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.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPP, author = "Al Stevens", title = "{C} Programming: The {S} Programming Language", journal = j-DDJ, volume = "25", number = "2", pages = "110--113", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", note = "See comment on another {S} language \cite{Kautz:2000:LLI}.", URL = "http://www.ddj.com/ftp/2000/2000_02/cprog220.txt", abstract = "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. Additional resources include cprog220.txt (listings).", acknowledgement = ack-nhfb, xxnote = "This is NOT the statistics programming language that predated S-Plus; I wrote to the author and pointed out the name conflict.", } @Article{Henry:2000:JQH, author = "Ethan Henry and Ed Lycklama", title = "{Java Q\&A}: How Do You Plug {Java} Memory Leaks?", journal = j-DDJ, volume = "25", number = "2", pages = "115--119, 121", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/jqa220.txt", abstract = "Our authors show what you can do when Java exhibits classic memory leak behavior -- unbounded memory growth leading to poor performance and eventually crashing. Additional resources include jqa220.txt (listings).", acknowledgement = ack-nhfb, } @Article{Wiener:2000:AAH, author = "Michael J. Wiener", title = "Algorithm Alley: High-Speed Cryptography with the {RSA} Algorithm", journal = j-DDJ, volume = "25", number = "2", pages = "123--126", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_02/aa220.txt", abstract = "Michael presents some key optimizations (with source-code examples) that can be made to make RSA algorithm as fast as possible. Additional resources include aa220.txt (listings).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOb, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Sticks", journal = j-DDJ, volume = "25", number = "2", pages = "131--132", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Landmines are a nasty piece of work, indeed. Ecco and Liane need to come up with ways to make removing them a safer proposition.", acknowledgement = ack-nhfb, } @Article{Wilson:2000:PBA, author = "Gregory V. Wilson", title = "Programmer's Bookshelf: All This, and Frequent Flyer Miles, Too!", journal = j-DDJ, volume = "25", number = "2", pages = "135--136", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", abstract = "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.", acknowledgement = ack-nhfb, } @Article{Baran:2000:Ib, author = "Nicholas Baran and Amy Lincicum", title = "Of Interest", journal = j-DDJ, volume = "25", number = "2", pages = "142--143", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFS, author = "Michael Swaine", title = "{Swaine}'s Flames: Scaffolding", journal = j-DDJ, volume = "25", number = "2", pages = "144--144", month = feb, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:13 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EOS, author = "Jonathan Erickson", title = "Editorial: {Open Source}, Open Projects", journal = j-DDJ, volume = "25", number = "3", pages = "10--10", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Patten:2000:LLE, author = "Michael Patten and Jonathan Erickson and Eliezer S. Yudkowsky and Larry Sollman", title = "Letters: {Larry Ellison}'s Jet; The True Name of the Singularity; The Sixth Sense;", journal = j-DDJ, volume = "25", number = "3", pages = "12, 14", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVM, author = "Nicholas Baran", title = "News and Views: More on Tiny Transistors; {Open Source} Repository Launched; Design Contest Promotes New Software Tools; And Then There's a Decryption Contest; {Fred Brooks} Wins {ACM Turing Award}", journal = j-DDJ, volume = "25", number = "3", pages = "18--18", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", URL = "http://sourceforge.net/", acknowledgement = ack-nhfb, } @Article{Cole:2000:WBT, author = "Oliver Cole", title = "White-Box Testing", journal = j-DDJ, volume = "25", number = "3", pages = "23--26, 28", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/wboxtest.txt", abstract = "Traditionally, there are two main approaches to testing software: ``black-box'' (or functional) testing, and ``white-box'' (or structural) testing. White-box testing strategies include designing tests such that every source line of code is executed at least once, or requiring every function to be individually tested. Additional resources include wboxtest.txt (listings).", acknowledgement = ack-nhfb, } @Article{Horwood:2000:DMA, author = "Peter Horwood and Shlomo Wygodny and Martin Zardecki", title = "Debugging Multithreaded Applications", journal = j-DDJ, volume = "25", number = "3", pages = "32, 34--37", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/dbgmulti.txt", abstract = "It is often significantly harder to locate and test for bugs in multithreaded and multiprocess applications than for nonthreaded, single process situations. Our authors describe some of the problems with multithreaded applications and discuss common debugging techniques. Additional resources include dbgmulti.txt (listings).", acknowledgement = ack-nhfb, } @Article{DiMaggio:2000:TUD, author = "Len DiMaggio", title = "Testing {UNIX} Daemons", journal = j-DDJ, volume = "25", number = "3", pages = "38, 40, 42, 44", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "UNIX daemons are programs that run in the background, letting you do other work in the foreground. Len presents a ``recipe'' for testing them.", acknowledgement = ack-nhfb, } @Article{Cohen:2000:BTF, author = "Noam Cohen", title = "Building a Testpoint Framework", journal = j-DDJ, volume = "25", number = "3", pages = "46, 48--50", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/testpont.txt; http://www.ddj.com/ftp/2000/2000_03/testpont.zip", abstract = "Noam presents a framework for creating and using testpoints. He originally designed and implemented this framework while developing VideoClick, a video distribution and management system. Additional resources include testpont.txt (listings) and testpont.zip (source code).", acknowledgement = ack-nhfb, } @Article{Robison:2000:CR, author = "Arch D. Robison", title = "Considering Recursion", journal = j-DDJ, volume = "25", number = "3", pages = "52, 54--55, 57--58", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/recurs.txt", abstract = "Granted, recursion means different things to different people. But for Arch, recursion means trouble because recursive code entangles control flow, which hurts readability, reuse, and optimization. Additional resources include recurs.txt (listings).", acknowledgement = ack-nhfb, } @Article{Wilson:2000:IBP, author = "James Y. Wilson and Jason A. Krontz", title = "Inside {Bluetooth}: Part {I}", journal = j-DDJ, volume = "25", number = "3", pages = "62, 64--66, 68, 70", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Bluetooth technology is an open specification for wireless communication and networking. In the first of a two-part series, Jim and Jason lay out the basics.", acknowledgement = ack-nhfb, } @Article{Epplin:2000:IRT, author = "Jerry Epplin", title = "Inside {Real-Time Linux}", journal = j-DDJ, volume = "25", number = "3", pages = "72, 74, 76, 78", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/rtlinux.txt; http://www.ddj.com/ftp/2000/2000_03/rtlinux.zip", abstract = "Real-Time Linux is based on the same model as the NT-based systems, but, since it is freely available, doesn't have the associated cost overhead. To illustrate how you can use RTLinux, Jerry presents a data-acquisition application. Additional resources include rtlinux.txt (listings) and rtlinux.zip (source code).", acknowledgement = ack-nhfb, } @Article{Yun:2000:MNS, author = "James K. Yun", title = "Measuring Network Software Performance", journal = j-DDJ, volume = "25", number = "3", pages = "80, 82--91", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/netperf.txt; http://www.ddj.com/ftp/2000/2000_03/netperf.zip", abstract = "The network performance measurement techniques James discusses here are especially useful in projects where the network interface is encapsulated in a class library or network middleware. Additional resources include netperf.txt (listings) and netperf.zip (source code).", acknowledgement = ack-nhfb, } @Article{Wanner:2000:SEY, author = "James F. Wanner", title = "{SourceMonitor}: Exposing Your Code", journal = j-DDJ, volume = "25", number = "3", pages = "92, 94--98", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/sourcemonitor.zip; http://www.ddj.com/ftp/2000/2000_03/sourcemonitorv0163.exe", abstract = "SourceMonitor is a programmer's metrics tool that Jim wrote to expose the size and quality of his source code. To parse source code, Jim used Sandstone's Visual Parse++; to create reports, he turned to Stingray's Objective Chart. Additional resources include sourcemonitor.zip (source code) and sourcemonitorv0163.exe (executable in self-extracting zip archive).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPAa, author = "Michael Swaine", title = "Programming Paradigms: Atom by Atom", journal = j-DDJ, volume = "25", number = "3", pages = "101--102, 104--105", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "When we look back at it, 1999 might have been a breakthrough year for nanotechnology, as big advances were made in tiny computers.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPI, author = "Al Stevens", title = "{C} Programming: Iterating the Days Until {Y2K}", journal = j-DDJ, volume = "25", number = "3", pages = "107--108, 110", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Smart iterators might not be such a dumb idea, but, as Al points out, there are costs associated with them.", acknowledgement = ack-nhfb, } @Article{Jennings:2000:JQC, author = "Mike Jennings", title = "{Java Q\&A}: Can You Write {NT} Services in {Java}?", journal = j-DDJ, volume = "25", number = "3", pages = "113--116, 118", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/jqa300.txt; http://www.ddj.com/ftp/2000/2000_03/jqa300.zip", abstract = "A service in Windows NT (or ``daemon'' in UNIX parlance) is a program that runs in the background to do a specific task. Can you write NT services in Java? Sure, and Mike shows you how. Additional resources include jqa300.txt (listings) and jqa300.zip (source code).", acknowledgement = ack-nhfb, } @Article{Gong:2000:AAA, author = "Mingfu Gong", title = "Algorithm Alley: An ${N}\log {N}$ Adaptive Group Sort Algorithm", journal = j-DDJ, volume = "25", number = "3", pages = "123--124, 126--127", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_03/aa300.txt", abstract = "Group sorting algorithms are well suited for applications where recursion is either not allowed or inefficient. In this month's column, Mingfu presents an N*logN adaptive group sort algorithm. Additional resources include aa300.txt (listings).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOc, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Simple", journal = j-DDJ, volume = "25", number = "3", pages = "128--128", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Benjamin Baskerhound has turned over a new leaf, this time coming to Ecco and Liane for help, rather than mischief.", acknowledgement = ack-nhfb, } @Article{Wilson:2000:PBH, author = "Gregory V. Wilson", title = "Programmer's Bookshelf: How Matters More than What", journal = j-DDJ, volume = "25", number = "3", pages = "135--136", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "This month, Greg examines Extreme Programming Explained, by Kent Beck, and the recently released The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas.", acknowledgement = ack-nhfb, } @Article{Baran:2000:Ic, author = "Nicholas Baran and Amy Lincicum", title = "Of Interest", journal = j-DDJ, volume = "25", number = "3", pages = "142--143", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFI, author = "Michael Swaine", title = "{Swaine}'s Flames: Invention or Hack?", journal = j-DDJ, volume = "25", number = "3", pages = "144--144", month = mar, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EGL, author = "Jonathan Erickson", title = "Editorial: Getting the Lead Out", journal = j-DDJ, volume = "25", number = "4", pages = "8--8", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Kautz:2000:LLI, author = "Frederick Kautz and Dimitrios Souflis and Robert Carbonari and DDJ and Al Gettier and Tina Femia and Andrew D. Todd and Anonymous and Alan Horn and Anonymous and Brad Clawsie and Samuel Pearlman", title = "Letters: The {S} Language; {IP} Security; {Pnuts} Pointer; Flyby; Worker Shortage?; Design by Interface", journal = j-DDJ, volume = "25", number = "4", pages = "10, 12", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", note = "See \cite{Stevens:2000:CPP}.", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVIa, author = "Nicholas Baran", title = "News and Views: {Internet} Security in ``Infantile State''; {Hedy Lamarr}: Spread Spectrum Pioneer; New Weather Supercomputer Not So Super; Researchers Like Armies of Cheap Robots; {Kurzweil} Predicts Human Brain Uploads", journal = j-DDJ, volume = "25", number = "4", pages = "18--18", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, keywords = "National Weather Service IBM Processor 786 System Parallel Supercomputer", } @Article{Erickson:2000:DDE, author = "Jonathan Erickson", title = "{Dr. Dobb's Excellence In Programming Award}", journal = j-DDJ, volume = "25", number = "4", pages = "20--21", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Through his research and writings, Jon Bentley has made significant contributions to the art and science of computer programming. And he's the recipient of this year's Dr. Dobb's Excellence in Programming Award.", acknowledgement = ack-nhfb, } @Article{Levitin:2000:NRM, author = "Anany Levitin", title = "A New Road Map of Algorithm Design Techniques", journal = j-DDJ, volume = "25", number = "4", pages = "23--24, 26--28", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Before outlining a new taxonomy, Anany reviews the four most general algorithm design techniques: brute force, divide-and-conquer, decrease-and-conquer, and transform-and-conquer.", acknowledgement = ack-nhfb, } @Article{Ginsberg:2000:MCM, author = "Matthew Ginsberg", title = "{Monte Carlo} Methods", journal = j-DDJ, volume = "25", number = "4", pages = "34, 36--37", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/mc.txt", abstract = "Bridge is one of a handful of classic games that have thus far eluded competent computer play. However, GIB, the Bridge program Matthew wrote and discusses here, proves to be a worthy competitor. Additional resources include mc.txt (listings).", acknowledgement = ack-nhfb, } @Article{Nilsson:2000:FSA, author = "Stefan Nilsson", title = "The Fastest Sorting Algorithm?", journal = j-DDJ, volume = "25", number = "4", pages = "38, 40, 42, 44--45", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/fastsort.txt; http://www.ddj.com/ftp/2000/2000_04/fastsort.zip", abstract = "Which sorting algorithm is the fastest? Stefan presents his answer to this age-old question. Additional resources include fastsort.txt (listings) and fastsort.zip (source code).", acknowledgement = ack-nhfb, } @Article{Burton:2000:GCR, author = "Joshua W. Burton", title = "Garbage Collection On the Run", journal = j-DDJ, volume = "25", number = "4", pages = "46, 48--49, 51--53", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Joshua examines several incremental memory-management algorithms, including simple user-defined reference counts, before turning to analyzing the global connectedness of pointer structures.", acknowledgement = ack-nhfb, } @Article{Manivannan:2000:EAM, author = "S. Manivannan", title = "An Efficient Algorithm for Magnitude Operation", journal = j-DDJ, volume = "25", number = "4", pages = "54, 565", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/mag.txt", abstract = "Magnitude operation is widely used in signal and data processing for signal detection and power estimation in systems such as real-time displays for sensors, radars, sonars, and scanners for medical-imaging systems. Additional resources include nag.txt (listings).", acknowledgement = ack-nhfb, } @Article{Wilson:2000:BSP, author = "James Y. Wilson and Jason A. Kronz", title = "The {Bluetooth} Spec: Part {II}", journal = j-DDJ, volume = "25", number = "4", pages = "58, 60, 62--64", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Bluetooth technology is an open specification for wireless communication. In Part I, Jim and Jason examined the voluminous specification. This month, they focus on the features of the Baseband specification.", acknowledgement = ack-nhfb, } @Article{Ledin:2000:DFO, author = "Jim Ledin", title = "Digital Filtering and Oversampling", journal = j-DDJ, volume = "25", number = "4", pages = "66, 68--70, 72--74", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/filter.txt; http://www.ddj.com/ftp/2000/2000_04/filter.zip", abstract = "Compared to analog filtering, digital filtering can provide higher overall system performance and reduce circuit complexity. Jim examines the technique of oversampling, which can be used to gain these seemingly contradictory benefits. Additional resources include filter.txt (listings) and filter.zip (source code).", acknowledgement = ack-nhfb, } @Article{Goldman:2000:LDM, author = "Roy Goldman and Jason McHugh and Jennifer Widom", title = "{Lore}: {A} Database Management System for {XML}", journal = j-DDJ, volume = "25", number = "4", pages = "76, 78--80", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/lore.txt", abstract = "Lore is a DBMS designed specifically for XML. In the same way that SQL queries relational DBMSs, Lore provides the query language Lorel for issuing expressive queries over XML data. Additional resources include lore.txt (listings).", acknowledgement = ack-nhfb, } @Article{Chapman:2000:EPT, author = "Mitch Chapman and Brian Kelley", title = "Examining the {PyGtk} Toolkit", journal = j-DDJ, volume = "25", number = "4", pages = "82, 84, 86, 88", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/pygtk.txt", abstract = "PyGtk brings the benefits of a high-level programming language to Gtk+ developers, and gives Python programmers access to a modern, high-performance GUI toolkit. Additional resources include pygtk.txt (listings).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPM, author = "Michael Swaine", title = "Programming Paradigms: Misinformation", journal = j-DDJ, volume = "25", number = "4", pages = "91--93, 95", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Michael ain't misbehavin' as much as he's misinformin'. Of course, that's not his fault.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPSb, author = "Al Stevens", title = "{C} Programming: Speaking of Rambling", journal = j-DDJ, volume = "25", number = "4", pages = "97--99", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Ramblin' Jack Elliot has nothing on Al this month, as our man in C rambles from one topic to another.", acknowledgement = ack-nhfb, } @Article{Epstein:2000:JQ, author = "David Epstein and Joseph Kiniry and John Motil", title = "{Java Q\&A}: What is ``{JJ}''?", journal = j-DDJ, volume = "25", number = "4", pages = "101--106", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/jqa400.txt", abstract = "JJ is a Java implementation originally designed as an educational programming language and environment. Although it's a subset of Java, JJ includes advanced programming features such as support for Design by Contract. Additional resources include jqa400.txt (listings).", acknowledgement = ack-nhfb, annote = "JJ is a subset of Java, designed for learning Java.", } @Article{Bentley:2000:AAB, author = "Jon Bentley", title = "Algorithm Alley: Binary Search: Algorithm, Code, and Caching", journal = j-DDJ, volume = "25", number = "4", pages = "111--112, 114, 116", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_04/aa400.txt", abstract = "Caching often works well, but sometimes fails utterly. In this column, Jon examines why that happens and what you can do about it. Additional resources include aa400.txt (listings).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOd, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Blood", journal = j-DDJ, volume = "25", number = "4", pages = "119--120, 122", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "There's bad blood around Ecco's flat, as the good doctor and his sidekick Liane lend a hand to medical science.", acknowledgement = ack-nhfb, } @Article{Taylor:2000:PBS, author = "Jeffrey L. Taylor", title = "Programmer's Bookshelf: Second Time Around", journal = j-DDJ, volume = "25", number = "4", pages = "127--128, 130", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Jeffrey examines the second editions of Radia Perlman's Interconnections: Bridges, Routers, Switches, and Internetworking Protocols, and Bruce Powel-Douglass' Real-Time UML: Developing Efficient Objects for Embedded Systems.", acknowledgement = ack-nhfb, } @Article{Baran:2000:Id, author = "Nicholas Baran and Amy Lincicum", title = "Of Interest", journal = j-DDJ, volume = "25", number = "4", pages = "134--135", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFDa, author = "Michael Swaine", title = "{Swaine}'s Flames: The Death and Resurrection of {Rudy Doone}", journal = j-DDJ, volume = "25", number = "4", pages = "136--136", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Bykov:2000:AYJ, author = "Alex Bykov", title = "Ace Your Job Interview", journal = j-DDJ, volume = "25", number = "4", pages = "??--??", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "If you're in the market for a job, be prepared to answer a lot of technical questions during the job interview. Alex shares some of the questions you'll face and gives you answers you'll need.", acknowledgement = ack-nhfb, } @Article{Ellis:2000:ILS, author = "Richard Ellis", title = "The {IT} Labor Shortage: Fact Or Fiction?", journal = j-DDJ, volume = "25", number = "4", pages = "??--??", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Current reports present conflicting views of the job market for information technology workers. Richard goes below the surface to uncover the real story.", acknowledgement = ack-nhfb, } @Article{Simcox:2000:WYW, author = "Susan Simcox", title = "What Are You Worth?", journal = j-DDJ, volume = "25", number = "4", pages = "??--??", month = apr, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:14 MST 2000", bibsource = "http://www.ddj.com/", abstract = "A recent dice.com career and salary survey on the IT industry gave some surprising (and some not so surprising) results. Susan reports on this study.", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EHM, author = "Jonathan Erickson", title = "Editorial: Hey, {Mr. Postman}", journal = j-DDJ, volume = "25", number = "5", pages = "8--8", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Cromwell:2000:LWS, author = "Jeff Cromwell and Jim North and J. Stephen Riley Silber and Graham M. Sherrington and John Gegus", title = "Letters: Worker Shortage; The Sixth Sense, Redux; Kryptos Message; Data Structures as Objects", journal = j-DDJ, volume = "25", number = "5", pages = "10, 12", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVD, author = "Nicholas Baran", title = "News and Views: Does ``Reading'' Have a Future?; Trade Secrets Compromising Academic Research?; Optical Optimism; Call to All Programmers: Prepare for {Y5K}; Software Safety Researcher [Nancy {G}. Leveson] Gets {ACM}'s {Newell Award}", journal = j-DDJ, volume = "25", number = "5", pages = "18--18", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{deCarmo:2000:MGC, author = "Linden deCarmo", title = "The {Media Gateway Control Protocol}", journal = j-DDJ, volume = "25", number = "5", pages = "23--24, 26--28, 32", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "The Media Gateway Control Protocol is a lightweight telephony protocol that promises reduced complexity and increased reliability for digital Internet phones.", acknowledgement = ack-nhfb, } @Article{Stallings:2000:GE, author = "William Stallings", title = "Gigabit {Ethernet}", journal = j-DDJ, volume = "25", number = "5", pages = "34, 36--37", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Although it defines a new medium and transmission specification, the Gigabit Ethernet spec is based on the same strategy as 100-Mbits/sec. Ethernet.", acknowledgement = ack-nhfb, } @Article{Karim:2000:WNC, author = "Jawed Karim", title = "A {Win32} Network Crawler", journal = j-DDJ, volume = "25", number = "5", pages = "38, 40, 42--43", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/voyeur.txt; http://www.ddj.com/ftp/2000/2000_05/voyeur.zip", abstract = "MP3 Voyeur is a freely available Win32 program that automates the task of finding MP3 files on the shared folders of local area networks. It works like a network crawler, querying each computer on the network and traversing each computer's hierarchy of shared folders to find MP3 files. Additional resources include voyeur.txt (listings) and voyeur.zip (source code).", acknowledgement = ack-nhfb, } @Article{Calbucci:2000:LSF, author = "Marcelo A. F. Calbucci", title = "{LDAP} Search Filters", journal = j-DDJ, volume = "25", number = "5", pages = "44, 46, 48, 50--51", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/ldapsrch.txt; http://www.ddj.com/ftp/2000/2000_05/ldapsrch.zip", abstract = "The Lightweight Directory Access Protocol is a transport mechanism for Directory Service transactions. Marcelo focuses on the search filter that's part of LDAP search functionality. Additional resources include ldapsrch.txt (listings) and ldapsrch.zip (source code).", acknowledgement = ack-nhfb, } @Article{Fishburne:2000:MPG, author = "William Fishburne", title = "Margination and {Project Gutenberg}", journal = j-DDJ, volume = "25", number = "5", pages = "52, 54--56", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Fri Nov 10 05:30:30 2000", note = "See letter \cite{Gantz:2000:LM}.", URL = "http://www.ddj.com/ftp/2000/2000_05/gutenbg.txt; http://www.ddj.com/ftp/2000/2000_05/gutenbg.zip", abstract = "The goal of Project Gutenberg is to distribute a million books electronically by the end of the year. To that end, project organizers have identified some unusual requirements on the margins of the lines. Additional resources include gutenbg.txt (listings) and gutenbg.zip (source code).", acknowledgement = ack-nhfb, } @Article{Chasin:2000:PSM, author = "Andrew Chasin", title = "Predication, Speculation, and Modern {CPUs}", journal = j-DDJ, volume = "25", number = "5", pages = "58, 60--61, 63--64", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/ps_cpu.txt", abstract = "Predication and speculation are viable techniques for improving software performance, and the emerging class of processors and compilers are supporting it. Additional resources include ps\_cpu.txt (listings)", acknowledgement = ack-nhfb, } @Article{Smyth:2000:ICY, author = "Gavin Smyth", title = "Infrared Control of Your {PC}", journal = j-DDJ, volume = "25", number = "5", pages = "66, 68, 70, 72", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/infrared.txt; http://www.ddj.com/ftp/2000/2000_05/infrared.zip", abstract = "Infrared devices are used to remotely control consumer electronic systems -- TVs, VCRs, stereos, and the like. Gavin shows you how you can add your PC to that list. Additional resources include infrared.txt (listings) and infrared.zip (source code).", acknowledgement = ack-nhfb, } @Article{Tucker:2000:WCC, author = "Andrew Tucker", title = "{Window CE}'s {CESH} Utility", journal = j-DDJ, volume = "25", number = "5", pages = "74, 76--78, 80", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/cecesh.txt; http://www.ddj.com/ftp/2000/2000_05/cecesh.zip", abstract = "CESH, a utility included with the Windows CE development tools, lets you automate test suites to download and run on a device, while logging results on the desktop machine. Additional resources include cecesh.txt (listings) and cecesh.zip (source code).", acknowledgement = ack-nhfb, } @Article{Gemmell:2000:SMF, author = "Jim Gemmell", title = "Scalable Multicast File Distribution", journal = j-DDJ, volume = "25", number = "5", pages = "82, 84--89", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Fcast, the file distribution mechanism Jim presents here, uses IP multicast and forward error correction (FEC) to serve extremely large numbers of clients with minimal loads for servers and networks.", acknowledgement = ack-nhfb, } @Article{Barker:2000:BBA, author = "John S. Barker", title = "Building the {Bell Atlantic Tariff Management System}", journal = j-DDJ, volume = "25", number = "5", pages = "90, 92--95, 97", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Bell Atlantic's Tariff Management System is a web-based, collaborative system for generating and managing tens of thousands of pages of documents. What made building the system difficult is that it had to be capable of delivering the product in multiple formats -- paper, PDF, and HTML -- while obeying strict, legislated rules regarding page layout.", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPe, author = "Michael Swaine", title = "Programming Paradigms: Oh Behave!", journal = j-DDJ, volume = "25", number = "5", pages = "99--100, 102", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Michael reports on Eazel, a Linux startup for Macs, and gets small with nanotechnology.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPSc, author = "Al Stevens", title = "{C} Programming: Slamming, Compilers, {E}-Books", journal = j-DDJ, volume = "25", number = "5", pages = "105--107, 109", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Al considers the upside and downside of using classes and functions from the Standard C++ library.", acknowledgement = ack-nhfb, } @Article{Reilly:2000:JQH, author = "David Reilly", title = "{Java Q\&A}: How Do {I} User Servlets for State and Session Management?", journal = j-DDJ, volume = "25", number = "5", pages = "111--115", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/jqa500.txt; http://www.ddj.com/ftp/2000/2000_05/jqa500.zip", abstract = "How do you use Servlets for state and session management? David shows you how. Additional resources include jqa500.txt (listings) and jqa500.zip (source code).", acknowledgement = ack-nhfb, } @Article{Missaghi:2000:AA, author = "Moheb Missaghi", title = "Algorithm Alley: How Many Subscribers Should Share a Modem?", journal = j-DDJ, volume = "25", number = "5", pages = "119--121", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_05/aa500.zip", abstract = "How many ISP subscribers should share a modem? That's the question Moheb was faced with, and he presents and implements the algorithm that proved to be the answer. Additional resources include aa500.zip (source code).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOe, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Centimillionaire", journal = j-DDJ, volume = "25", number = "5", pages = "123--124", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Ecco and Liane find out it's better to be rich and healthy than sick and poor.", acknowledgement = ack-nhfb, } @Article{Wilson:2000:PBS, author = "Gregory V. Wilson", title = "Programmer's Bookshelf: Stirring the Gene Pool", journal = j-DDJ, volume = "25", number = "5", pages = "127, 130", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Greg's roundup this month includes Objects Unencapsulated: Java, Eiffel, and C++?, by Ian Joyner; The Logic Programming Paradigm, by Krzysztof R. Apt, Victor W. Marek, Mirek Truszczynski, and David S. Warren; Quantum Computing and Communications, edited by Michael Brooks; Cambrian Intelligence, by Rodney A. Brooks; Intellectual Property in the Age of Universal Access, by the ACM; Database Design for Smarties, by Robert J. Muller; Designing Maintainable Software, by Dennis D. Smith; and (finally) Automating Windows with Perl, by Scott McMahan.", acknowledgement = ack-nhfb, } @Article{Baran:2000:Ie, author = "Nicholas Baran and Amy Lincicum", title = "Of Interest", journal = j-DDJ, volume = "25", number = "5", pages = "134--135", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFNa, author = "Michael Swaine", title = "{Swaine}'s Flames: Nag, Nag, Nag", journal = j-DDJ, volume = "25", number = "5", pages = "136--136", month = may, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EMC, author = "Jonathan Erickson", title = "Editorial: Money Can't Buy Me Love", journal = j-DDJ, volume = "25", number = "6", pages = "10--10", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Collins:2000:LMW, author = "Terry Collins and Geoff Davis and Tarjei Tjxstheim [sic] Jensen and Raj Dash and DDJ and Rick Box and Dimitrios Souflis and James K. Yun and Guy Hammond and DDJ", title = "Letters: More Worker Shortage; Music City; Sorting Through Sorts; Buy the Book; {E}-Address Change; {Open Source} Debate", journal = j-DDJ, volume = "25", number = "6", pages = "10, 12", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVf, author = "Nicholas Baran", title = "News and Views: {Freenet}: More Anarchy for the {Internet}?; Magnetic Properties Key to Nanoengineering; Nanoseconds Not Fast Enough? Here Come Femtoseconds; {Caltech} Leads {U.S.} Field in {ACM} Programming Contest; Robotic Surgeons May Make Fewer Mistakes; Free Software for Designing {ICs}", journal = j-DDJ, volume = "25", number = "6", pages = "18--18", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Perez:2000:MDM, author = "C{\'e}sar A. Gonzalez Perez and Pablo Criado Boado", title = "The {Metis} Design Methodology", journal = j-DDJ, volume = "25", number = "6", pages = "21--22, 24--26", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Metis is an object-oriented development methodology that includes all the usual tasks found in a generic software project lifecycle.", acknowledgement = ack-nhfb, } @Article{Beckman:2000:OSM, author = "Pete Beckman and Gregory V. Wilson", title = "{Open Source} Meets Big Iron", journal = j-DDJ, volume = "25", number = "6", pages = "30, 32, 34--35", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "The aim of the Software Carpentry project is to create a new generation of easy-to-use software engineering tools, and to document those tools and the working practices they are meant to support.", acknowledgement = ack-nhfb, } @Article{Macri:2000:SPC, author = "Julian Macri", title = "State Patterns and {C++}", journal = j-DDJ, volume = "25", number = "6", pages = "36, 38, 40, 42, 44--45", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/statepat.txt", abstract = "In object-oriented design, objects can modify their behavior based on the current state of their attributes. State patterns abstract the ability for an object to change its behavior. Julian presents two ways the State design pattern can be implemented in C++. Additional resources include statepat.txt (listings and source code).", acknowledgement = ack-nhfb, } @Article{Dwelly:2000:XRP, author = "Andrew Dwelly", title = "{XML}, Reflective Pattern Matching, and {Java}", journal = j-DDJ, volume = "25", number = "6", pages = "46, 49--52, 54", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/xmljava.txt; http://www.ddj.com/ftp/2000/2000_06/marius05.zip", abstract = "Although the pattern matching available in Hex, the program Andrew presents here, is relatively simple, it is still powerful enough to perform sophisticated XML document processing. Additional resources include xmljava.txt (listings) and marius05.zip (source code).", acknowledgement = ack-nhfb, } @Article{Kiesling:2000:OOU, author = "Robert Kiesling", title = "An Object-Oriented {UI} for {Perl}", journal = j-DDJ, volume = "25", number = "6", pages = "58, 60--61", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/perlooui.txt; http://www.ddj.com/ftp/2000/2000_06/worksp.zip", abstract = "If you work with object-oriented languages, you are likely accustomed to user-interface objects that highlight the object-oriented features of a language's internal structures. Robert shows one way Perl's features can contribute to its usefulness in object-oriented projects. Additional resources include perlooui.txt (listings) and worksp.zip (source code).", acknowledgement = ack-nhfb, } @Article{Ni:2000:WVC, author = "Ping Ni and Mark Nelson", title = "{Win32} Version Control", journal = j-DDJ, volume = "25", number = "6", pages = "62, 64--66", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/win32ver.txt", abstract = "Faced with the problems created by scattered development teams, distributed objects, and dozens of DLLs and executables, Ping and Mark turned to Perl and C++ to give some muscle to the Visual Source Safe source-code version control system. Additional resources include win32ver.txt (listings).", acknowledgement = ack-nhfb, } @Article{Davis:2000:OOD, author = "Thomas E. Davis", title = "Object-Oriented Design In Procedural Environments", journal = j-DDJ, volume = "25", number = "6", pages = "68, 70--72", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/oodesign.txt", abstract = "Tom shows how you can apply some of the inherent cleanliness of object-oriented design to your procedural language projects. To illustrate, he designs an application for Motorola's PageWriter two-way pager. Additional resources include oodesign.txt (listings).", acknowledgement = ack-nhfb, } @Article{Roelofs:2000:JCC, author = "Brian Roelofs", title = "{Java} Custom Class Loaders", journal = j-DDJ, volume = "25", number = "6", pages = "74, 76, 78, 80, 82", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/javaload.txt; http://www.ddj.com/ftp/2000/2000_06/javaload.zip", abstract = "Custom class loaders create new possibilities for dynamic applications. Brian discusses how you can create your own class loader to read and load classes into the Java VM from any data source. Additional resources include javaload.txt (listings) and javaload.zip (source code).", acknowledgement = ack-nhfb, } @Article{Ritke:2000:IT, author = "Ronn Ritke", title = "An {Internet} Toolbox", journal = j-DDJ, volume = "25", number = "6", pages = "84, 86--87, 89", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Ronn examines a number of useful Internet tools, including packet-collection software, Internet-throughput software, ISP-measurement software, and the like.", acknowledgement = ack-nhfb, } @Article{Gorman:2000:PCT, author = "Ian E. Gorman", title = "Parsing Complex Text Structures", journal = j-DDJ, volume = "25", number = "6", pages = "90, 92--98", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/parse.txt; http://www.ddj.com/ftp/2000/2000_06/parse.zip", abstract = "A pattern language that includes recursive patterns and conditional pattern matching can handle complex text structures without supplementary programming. Ian uses the OmniMark pattern language from OmniMark Technologies to do a job that might otherwise be done with tools like lex and yacc. Additional resources include parse.txt (listings) and parse.zip (source code).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPB, author = "Michael Swaine", title = "Programming Paradigms: Breadth-First Search", journal = j-DDJ, volume = "25", number = "6", pages = "100, 102, 105", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Michael looks to the future of technology and society, and wonders if it will really be as bleak as a joyless Bill Joy thinks it will be.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPR, author = "Al Stevens", title = "{C} Programming: Retreading {Quincy}", journal = j-DDJ, volume = "25", number = "6", pages = "106, 108, 110, 112, 114", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "While sitting by the side of the road, Al gets into his Quincy 2000 port and further considers using the Borland BCC32 C/C++ compiler as Quincy's compiler.", acknowledgement = ack-nhfb, } @Article{Gsoedl:2000:JQC, author = "Jacob Gsoedl", title = "{Java Q\&A}: Can You Implement {COM} Components Using {Java}?", journal = j-DDJ, volume = "25", number = "6", pages = "119--120, 122, 124, 126", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/jqa600.txt", abstract = "Can you implement COM components using Java? Yes, and Jacob shows you how. Additional resources include jqa600.txt (listings)", acknowledgement = ack-nhfb, } @Article{Keogh:2000:AAL, author = "John Keogh", title = "Algorithm Alley: Layout Management", journal = j-DDJ, volume = "25", number = "6", pages = "131--134, 136", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_06/aa600.txt; http://www.ddj.com/ftp/2000/2000_06/aa600.zip", abstract = "John presents and implements an algorithm for scaling child windows when the parent is resized. Although the example runs under the Win32 API, the algorithm and data structure are generally useful for scaling child windows on other platforms. Additional resources include aa600.txt (listings) and aa600.zip (source code).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOf, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Microvirus", journal = j-DDJ, volume = "25", number = "6", pages = "139, 141", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Are Ecco and Liane the antidote for a deadly new strain of microvirus? Read and find out.", acknowledgement = ack-nhfb, } @Article{Cromwell:2000:PBA, author = "Jeff Cromwell", title = "Programmer's Bookshelf: The Art and Science of Software Architecture", journal = j-DDJ, volume = "25", number = "6", pages = "143--144", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Jeff reviews Applied Software Architecture, by Christine Hofmeister, Robert Nord, and Dilip Soni; Software Architecture in Practice, by Len Bass, Paul Clements, and Rick Kazman; and Software Architecture: Perspectives of an Emerging Discipline, by Mary Shaw and David Garlan.", acknowledgement = ack-nhfb, } @Article{Baran:2000:If, author = "Nicholas Baran and Amy Lincicum", title = "Of Interest", journal = j-DDJ, volume = "25", number = "6", pages = "150--151", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFE, author = "Michael Swaine", title = "{Swaine}'s Flames: Error-Correcting Journalism", journal = j-DDJ, volume = "25", number = "6", pages = "152--152", month = jun, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:15 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EUH, author = "Jonathan Erickson", title = "Editorial: Under the Hood", journal = j-DDJ, volume = "25", number = "7", pages = "8--8", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Roberts:2000:LPM, author = "Tim Roberts and Ben Combee and Eddie Edwards and Keith McBride and Matt Albrecht and Paul Kinzelman and Ken Anderson and Arch D. Robison", title = "Letters: Patent Madness; {C++} Identifiers; Digital Filtering and Oversampling; Pay Phones versus Cell Phones; {NASA} and the {Space Shuttle}; Getting the Lead Out\ldots{}; How Harmful is Recursion", journal = j-DDJ, volume = "25", number = "7", pages = "10, 12", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVg, author = "Nicholas Baran", title = "News and Views: 108-bit Elliptic Curve Cryptographic Key Found; New Algorithm Cracks the Stock Market; First Complete {Babbage} Printer Unveiled; {XrML} View to Be Digital Rights Standard; {PKWare} Founder [Phil Katz] Dies Unexpectedly", journal = j-DDJ, volume = "25", number = "7", pages = "18--18", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Kopp:2000:MCC, author = "Carlo Kopp", title = "Managing Cluster Computers", journal = j-DDJ, volume = "25", number = "7", pages = "21--26", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/cluster.txt", abstract = "A side effect of the commodification of computer hardware has been the emergence of supercomputing clusters. Carlo describes how TurboLinux's enFuzion is used to manage the Monash Parallel Parametric Modeling Engine, a cluster of Pentium/Linux-based computers. Additional resources include cluster.txt (listings).", acknowledgement = ack-nhfb, } @Article{Mondal:2000:LBU, author = "Abdul Sakib Mondal", title = "Load Balancing for {UNIX} and {Win32}", journal = j-DDJ, volume = "25", number = "7", pages = "32, 34, 36, 38--40", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/load.txt; http://www.ddj.com/ftp/2000/2000_07/load.zip; http://www.ddj.com/ftp/2000/2000_07/xyalb.zip", abstract = "In most distributed applications, the workload needs to be balanced across all available processors via software. Sakib presents XYALB, a load-balancing program that works on SunOS 4.1.1 and 4.1.3, Redhat Linux 6.5 (kernel 2.0.36), and Windows 95/NT. Additional resources include load.txt (listings) load.zip (source code), and xyalb.zip (other related files).", acknowledgement = ack-nhfb, } @Article{Rousselle:2000:PSJ, author = "Philip Rousselle and Daniel Greff", title = "Publish, Subscribe, and the {JMS API}", journal = j-DDJ, volume = "25", number = "7", pages = "44, 46, 48, 51", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/pubsub.zip", abstract = "The Java Messaging Service API is middleware that supports message passing rather than RPC semantics. Philip and Daniel explore the advantages of publish/subscribe distributed programming by implementing a chatroom application. Additional resources include pubsub.zip (source code).", acknowledgement = ack-nhfb, } @Article{Woehr:2000:CLI, author = "Jack Woehr", title = "A {C++} Library for {IBM MQSeries}", journal = j-DDJ, volume = "25", number = "7", pages = "52, 54", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/cppmqs.txt; http://www.ddj.com/ftp/2000/2000_07/jxmqv1p0.zip", abstract = "IBM MQSeries is a distributed messaging system that has been ported to many platforms. Jack presents SoftWoehr, an open-source C++ class library that encapsulates the MQSeries C language bindings. Additional resources include cppmqs.txt (listings) and jxmqv1p0.zip (source code).", acknowledgement = ack-nhfb, } @Article{Sintes:2000:XSC, author = "Tony Sintes", title = "{XML} and Software Configuration", journal = j-DDJ, volume = "25", number = "7", pages = "56, 58--62", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/xmlcfg.txt; http://www.ddj.com/ftp/2000/2000_07/xmlcfg.zip", abstract = "Tony explores software configuration and how it relates to XML. In the process, he presents an XML configuration markup language and Java framework that you can use as the basis for any Java configuration engine. Additional resources include xmlcfg.txt (listings) and xmlcfg.zip (source code).", acknowledgement = ack-nhfb, } @Article{Sassenrath:2000:RSL, author = "Carl Sassenrath", title = "The {REBOL} Scripting Language", journal = j-DDJ, volume = "25", number = "7", pages = "64, 66--69", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/rebol.txt", abstract = "The Relative Expression-Based Object Language (REBOL) was designed to make it easier to communicate between computers, or between people and computers, using context-dependent sublanguages. Additional resources include rebol.txt (listings).", acknowledgement = ack-nhfb, } @Article{Passani:2000:CWS, author = "Luca Passani", title = "Creating {WAP} Services", journal = j-DDJ, volume = "25", number = "7", pages = "70, 73--75, 78", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/wapserv.txt; http://www.ddj.com/ftp/2000/2000_07/wapserv.zip", abstract = "WAP is a communications architecture designed for wireless networks. Luca examines WAP services, then presents a WAP app used to pick songs from a database of music. To build this application, he uses the Apache web server (with PHP support) and MySQL database. Additional resources include wapserv.txt (listings) and wapserv.zip (source code).", acknowledgement = ack-nhfb, } @Article{Cunningham:2000:BPL, author = "Tom Cunningham", title = "A {BSP} Porting Library for Embedded Peripherals", journal = j-DDJ, volume = "25", number = "7", pages = "80, 82, 84, 86--87", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/bspseral.zip", abstract = "Board Support Packages (BSPs) are made up of interfaces that let RTOSs access system-level services, thereby isolating RTOSs from idiosyncrasies of the board. Tom describes a BSP he designed that is built on top of Motorola's M-CORE Peripheral Library. Additional resources include bspseral.zip (source code).", acknowledgement = ack-nhfb, keywords = "Board Support Package (BSP)", } @Article{Houlding:2000:PSC, author = "David Houlding", title = "Publish and Subscribe With {CORBA Web} Events", journal = j-DDJ, volume = "25", number = "7", pages = "88, 90--93", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/pscorba.txt; http://www.ddj.com/ftp/2000/2000_07/pscorba.zip", abstract = "David examines one approach to delivering publish/subscribe capabilities for web-enabled distributed object systems based on JavaScript clients and CORBA servers. Additional resources include pscorba.txt (listings) and pscorba.zip (source code).", acknowledgement = ack-nhfb, } @Article{Kientzle:2000:DEM, author = "Tim Kientzle", title = "Database Engines: {MySQL} Versus {Oracle}", journal = j-DDJ, volume = "25", number = "7", pages = "98, 100, 102, 104", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/mysqlorl.txt", abstract = "Among the more popular relational database engines with SQL interfaces are the open-source MySQL and commercially available Oracle database server. Tim looks at how they are alike and where they differ. Additional resources include mysqlorl.txt (listings).", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPg, author = "Michael Swaine", title = "Programming Paradigms: The Cluetrain Antipasto", journal = j-DDJ, volume = "25", number = "7", pages = "107--110", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "The authors of the Cluetrain Manifesto argue that markets are being transformed in a fundamental and revolutionary way by the Internet.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPG, author = "Al Stevens", title = "{C} Programming: Going Undercover", journal = j-DDJ, volume = "25", number = "7", pages = "113--117", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/cprog.txt", abstract = "Al goes undercover, then chats with Richard Stallman about Free Software, Linux, and more. Additional resources include cprog.txt (listings).", acknowledgement = ack-nhfb, } @Article{Perelman-Hall:2000:JQ, author = "David Perelman-Hall", title = "{Java Q\&A}: How Do {I} Build a Find?", journal = j-DDJ, volume = "25", number = "7", pages = "119--120, 122, 124, 126", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/jqa700.txt; http://www.ddj.com/ftp/2000/2000_07/jqa700.zip", abstract = "Does Java have ``find'' functionality? It does now, as David describes his implementation. Additional resources include jqa700.txt (listings) and jqa700.zip (source code).", acknowledgement = ack-nhfb, } @Article{Fomitchev:2000:AUD, author = "Max I. Fomitchev", title = "Automatic Updates for Distributed Applications", journal = j-DDJ, volume = "25", number = "7", pages = "129--131", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/aupdate.txt; http://www.ddj.com/ftp/2000/2000_07/aupdate.zip", abstract = "AutomatedUpdate, the program Max presents here, lets applications check file versions and automatically update themselves. Additional resources include aupdate.txt (listings) and aupdate.zip (source code).", acknowledgement = ack-nhfb, } @Article{Dorohonceanu:2000:AAP, author = "Bogdan Dorohonceanu and Craig Nevill-Manning", title = "Algorithm Alley: {A} Practical Suffix-Tree Implementation for String Searches", journal = j-DDJ, volume = "25", number = "7", pages = "133--136, 140", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_07/aa700.txt; http://www.ddj.com/ftp/2000/2000_07/aa700.zip", abstract = "Suffix trees are used for string searches. Our authors describe how to build a generalized suffix tree data structure using as few hardware resources as possible while still approaching the time complexity derived in theory. Additional resources include aa700.txt (listings) and aa700.zip (source code).", acknowledgement = ack-nhfb, } @Article{Shasha:2000:DEOg, author = "Dennis E. Shasha", title = "{Dr. Ecco}'s Omniheurist Corner: Wordsnakes", journal = j-DDJ, volume = "25", number = "7", pages = "143--144", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Ecco and Liane take on the challenge of wordsnakes -- a list of words without repeats such that some suffix of each word is a nonempty prefix of the next word in the list.", acknowledgement = ack-nhfb, } @Article{Stallings:2000:PB, author = "William Stallings", title = "Programmer's Bookshelf: Frame Relay Wrap-up", journal = j-DDJ, volume = "25", number = "7", pages = "147--147", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "William examines recent books on frame relay technology -- Frame Relay: Technology and Practice, by Jeff Buckwalter; Frame Relay Networks, by Uyless Black; Frame Relay for High-Speed Networks, by Walter Goralski; and Frame Relay Internetworking, by Liza Henderson and Tom Jenkins.", acknowledgement = ack-nhfb, } @Article{Cochran:2000:Ia, author = "Shannon Cochran", title = "Of Interest", journal = j-DDJ, volume = "25", number = "7", pages = "150--151", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Swaine:2000:SFR, author = "Michael Swaine", title = "{Swaine}'s Flames: The Rant at {Foo Bar}", journal = j-DDJ, volume = "25", number = "7", pages = "152--152", month = jul, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ddj/privacy.htm", acknowledgement = ack-nhfb, } @Article{Erickson:2000:EEE, author = "Jonathan Erickson", title = "Editorial: Extend, Embrace, Extinguish: Three Strikes and You're Out", journal = j-DDJ, volume = "25", number = "8", pages = "8--8", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Pollard:2000:LNF, author = "W. Thomas Pollard and Jan Theodore Galkowski and John Herbster and Scott Maxwell and Al Stevens and", title = "Letters: Nanoseconds Not Fast Enough? Why Not {Smalltalk}? Shared Responsibility for Virus Attacks; {Mingw32}", journal = j-DDJ, volume = "25", number = "8", pages = "10, 12", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Baran:2000:NVIb, author = "Nicholas Baran", title = "News and Views: ``{Intelligent}'' Ink Dries to Form Nanostucture; {Europeans} Look to Sci-Fi for New Ideas; Computer Program Can Act on Brain Signals; Inventory of Automatic Memory Protection [Richard Bloch] Passes Away; Ingestible Camera Could Replace Standard Endoscope", journal = j-DDJ, volume = "25", number = "8", pages = "18--18", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", acknowledgement = ack-nhfb, } @Article{Abrash:2000:IXG, author = "Michael Abrash", title = "Inside {Xbox} Graphics", journal = j-DDJ, volume = "25", number = "8", pages = "21--22, 24--26", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "Microsoft's upcoming Xbox game console has some pretty impressive graphics capabilities. Michael ought to know -- he's been developing the graphics internals for the past few months.", acknowledgement = ack-nhfb, } @Article{Haines:2000:TIT, author = "Eric Haines and Tomas M{\"o}ller", title = "Triangle Intersection Tests", journal = j-DDJ, volume = "25", number = "8", pages = "32, 34, 36", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/tri_test.rtf; http://www.ddj.com/ftp/2000/2000_08/tri_test.zip", abstract = "Our authors provide an alternative to the classic methods of testing whether a point is inside a triangle. This new technique is based on barycentric coordinates. Additional resources include tri\_test.rtf (listings) and tri\_test.zip (source code).", acknowledgement = ack-nhfb, } @Article{Fomitchev:2000:ORT, author = "Max I. Fomitchev", title = "Optimizing {3Dnow!} Real-Time Graphics", journal = j-DDJ, volume = "25", number = "8", pages = "40, 42--46", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/3dnow.txt; http://www.ddj.com/ftp/2000/2000_08/3dnow.zip", abstract = "One approach to pumping up real-time 3D graphics performance is AMD's 3DNow! technology, which adds floating-point SIMD extensions to the original x86 instruction set. Max examines 3DNow! technology, then provides guidelines for optimizing its performance even more. Additional resources include 3dnow.rtf (listings) and 3dnow.zip (source code).", acknowledgement = ack-nhfb, } @Article{Withers:2000:AIZ, author = "Wm. Douglas Withers", title = "Augural Image Zooming", journal = j-DDJ, volume = "25", number = "8", pages = "48, 50--54, 56, 58", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/aizoom.zip", abstract = "Augural image zooming is a new method for zooming images with a minimum of computation, while keeping smooth regions smooth and sharp edges sharp. Additional resources include aizoom.zip (source code).", acknowledgement = ack-nhfb, } @Article{Havewala:2000:AB, author = "Aspi Havewala", title = "Automated Builds", journal = j-DDJ, volume = "25", number = "8", pages = "60, 62--66, 68", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/autbuild.txt", abstract = "Automated builds refer to a series of commands that can be executed to compile and link source code into its final deliverable format. Aspi discusses some advantages of automated builds, and suggests some features your builds can incorporate. Additional resources include autbuild.txt (listings).", acknowledgement = ack-nhfb, } @Article{Nieh:2000:EV, author = "Jason Nieh and Ozgur Can Leonard", title = "Examining {VMware}", journal = j-DDJ, volume = "25", number = "8", pages = "70, 72--74, 76", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "VMware is a virtual machine platform that provides an abstraction of x86 PC hardware so that multiple operating systems can run unmodified at the same time on a standard PC. Among other things, this means you can run Windows applications with Linux.", acknowledgement = ack-nhfb, } @Article{Alexander:2000:LIC, author = "William F. Alexander", title = "A {Linux IEEE 1394} Configuration {ROM} Decoder", journal = j-DDJ, volume = "25", number = "8", pages = "80, 82, 84", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/linx1394.txt; http://www.ddj.com/ftp/2000/2000_08/linx1394.zip", abstract = "William's DumpRom program is designed to read and decode the configuration ROM of 1394 peripherals. He presents the Linux implementation of DumpRom using an OHCI 1394 controller. Additional resources include linx1394.rtf (listings) and linx1394.zip (source code).", acknowledgement = ack-nhfb, } @Article{Richter:2000:REN, author = "H. Thomas Richter", title = "Reliability and Embedded Networks", journal = j-DDJ, volume = "25", number = "8", pages = "86, 88, 90, 92, 94, 96", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/embednw.zip", abstract = "Reliability requirements for embedded networks are more critical than with nonembedded networks. Thomas presents a new method for ensuring reliable communication between hosts in small networked environments. Additional resources include embednw.zip (source code).", acknowledgement = ack-nhfb, } @Article{Ross:2000:DFP, author = "Darryl Ross and Con Zymaris", title = "{DB Forms}: {PHP}, {MySQL}, and {PHPLIB}", journal = j-DDJ, volume = "25", number = "8", pages = "98, 100--104", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/dbforms.txt; http://www.ddj.com/ftp/2000/2000_08/dbforms.zip", abstract = "Darryl and Con use the PHP server-side scripting engine, MySQL database engine, and PHPLIB class framework to build DB Forms, a reusable database framework for writing web applications. Additional resources include dbforms.rtf (listings) and dbforms.zip (source code).", acknowledgement = ack-nhfb, } @Article{Crooks:2000:EGS, author = "Clayton E. {Crooks II}", title = "Examining the {$3$D Game Studio Toolkit}", journal = j-DDJ, volume = "25", number = "8", pages = "106, 108--111", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "3D Game Studio from Conitec is a Win32-based authoring system for creating interactive 3D applications. Clayton uses it to build a typical three-room world that includes actor movements.", acknowledgement = ack-nhfb, } @Article{Swaine:2000:PPD, author = "Michael Swaine", title = "Programming Paradigms: Declarative Programming Revisited", journal = j-DDJ, volume = "25", number = "8", pages = "113--117", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "C.J. Date's new book What Not How: The Business Rules Approach to Application Development gets Michael thinking about Prolog, declarative programming, business rules, and the state of software development in general.", acknowledgement = ack-nhfb, } @Article{Stevens:2000:CPT, author = "Al Stevens", title = "{C} Programming: Twelve Years and Still Complaining", journal = j-DDJ, volume = "25", number = "8", pages = "119--121", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", bibsource = "http://www.ddj.com/", abstract = "You'd think that after 12 years, Al would figure out that complaining isn't worth the effort. But you have to hand it to him -- he doesn't give up.", acknowledgement = ack-nhfb, } @Article{Vilar:2000:JQW, author = "Alexandre Sieira Vilar", title = "{Java Q\&A}: What's Object Pooling All About?", journal = j-DDJ, volume = "25", number = "8", pages = "123--124, 126, 128, 130", month = aug, year = "2000", CODEN = "DDJOEB", ISSN = "1044-789X", bibdate = "Thu Nov 9 08:25:16 MST 2000", URL = "http://www.ddj.com/ftp/2000/2000_08/jqa800.txt; http://www.ddj.com/ftp/2000/2000_08/jqa800.zip", abstract = "Object pooling can be used very effectively to reduce the number of garbage collection executions in a Java application. And that reduction can deliver benefits in terms of reduced processor usage and the absence of unpredictable delays. Additional resources include jqa800.rtf (listings) and