%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "1.02",
%%%     date            = "22 October 2005",
%%%     time            = "05:18:44 MDT",
%%%     filename        = "cccuj2000.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        = "22974 7120 26493 241708",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "BibTeX; bibliography; C/C++ Users Journal",
%%%     supported       = "yes",
%%%     docstring       = "This is a COMPLETE bibliography of the
%%%                        C/C++ Users Journal (2000--2009), ISSN
%%%                        1075-2838, CODEN CCUJEX.
%%%
%%%                        Earlier years are covered in the companion
%%%                        bibliography, cccuj.bib, which also includes
%%%                        coverage of the journal's predecessor, the
%%%                        C Users Journal.
%%%
%%%                        The C Users Journal began with volume 6,
%%%                        number 1, January 1988, from the merger of
%%%                        the C Users' Group newsletter (1983--1987,
%%%                        8 issues yearly, no ISSN) with the C
%%%                        journal (1985--1987, 4 issues yearly, ISSN
%%%                        8756-9736).
%%%
%%%                        The journal maintains a World-Wide Web site
%%%                        at http://www.cuj.com/, and sells a
%%%                        DOS/Windows CD ROM with the complete text,
%%%                        figures, and code from 1990--date.
%%%
%%%                        These journals include numerous book
%%%                        review articles, so as a convenience to the
%%%                        reader, bibliographic entries are provided
%%%                        for all of the reviewed books, with
%%%                        cross-references between book and review
%%%                        entries.  Newer editions of the reviewed
%%%                        books are also included.
%%%
%%%                        At version 1.01, the year coverage looked
%%%                        like this:
%%%
%%%                             2000 ( 151)    2001 ( 141)    2002 (  94)
%%%
%%%                             Article:        386
%%%
%%%                             Total entries:  386
%%%
%%%                        This bibliography has been collected from
%%%                        bibliographies in the author's personal
%%%                        files, from the journal's Web site contents
%%%                        file, http://www.cuj.com/cbklist.htm, and
%%%                        from the U.S. Library of Congress, the
%%%                        University of California MELVYL, and the
%%%                        OCLC catalogs.
%%%
%%%                        The journal article citations are not in
%%%                        the Compendex or OCLC databases, but the
%%%                        UnCover database has some coverage for it.
%%%                        Almost all entries below are derived from
%%%                        the cbklist.htm file, which regrettably,
%%%                        lacks complete page number ranges, so most
%%%                        page numbers below are of the form 27--??.
%%%
%%%                        Numerous errors in the sources noted above
%%%                        have been corrected.   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{"\input path.sty" #
          "\hyphenation{
                Call-eens
                Dasch-bach
                Thor-sten
          }"}

%%% ====================================================================
%%% 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-CCCUJ                 = "C/C++ Users Journal"}

%%% ====================================================================
%%% Bibliography entries:

@Article{Briand:2000:EFa,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "6--6",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:IJI,
  author =       "Chuck Allison",
  title =        "{\tt import java.*}: Interfaces and Inner Classes",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "A Java interface is a weak substitute for multiple
                 inheritance in C++, but it still manages to do a lot of
                 what needs doing.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPa,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMa,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSCa,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Common Design Mistakes, Part
                 1",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "Pete provides several cautionary tales from the
                 volatile world of Java libraries. Rapid development is
                 not always compatible with good design.",
  acknowledgement = ack-nhfb,
}

@Article{Dandass:2000:IT,
  author =       "Yogi Dandass",
  title =        "Interval Trees",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "We know that a tree is often a good way to represent
                 an ordered set of values. It can also be a good way to
                 order a set of ranges as well.",
  acknowledgement = ack-nhfb,
}

@Article{Gontmakher:2000:EDL,
  author =       "Sasha Gontmakher",
  title =        "Easy Dynamic Loading in {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "Many programs today configure themselves on the fly.
                 Dynamic loading can really benefit from encapsulation,
                 to hide tedious details and system dependencies.",
  acknowledgement = ack-nhfb,
}

@Article{Guisado:2000:DCB,
  author =       "Ernesto Guisado",
  title =        "Debugging Component-Based Memory Leaks",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "The best place to catch memory leaks is as close to
                 the source as possible.",
  acknowledgement = ack-nhfb,
}

@Article{Plauger:2000:JAV,
  author =       "P. J. Plauger",
  title =        "Just Another Version of {Algol}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "As Ecclesiastes loved to remind us, there is nothing
                 new under the sun.",
  acknowledgement = ack-nhfb,
}

@Article{Plauger:2000:SCCa,
  author =       "P. J. Plauger",
  title =        "{Standard C/C++}: {Java} Standard Time",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "If standardization was good for C and for C++, then it
                 should be good for Java too. Shouldn't it?",
  acknowledgement = ack-nhfb,
}

@Article{Saks:2000:CTPa,
  author =       "Dan Saks",
  title =        "{C++} Theory and Practice: Replacing Character Arrays
                 with Strings, Part 1",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "It is a truism that well-designed library objects are
                 superior to the more primitive C data structures. But
                 it still helps to know the costs of converting to
                 them.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UET,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Tempus Fugit",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0001/0001toc.htm?topic=articles",
  abstract =     "Bobby deals this month with various kinds of passages,
                 including a very difficult personal one.",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFb,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "6--6",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Plauger:2000:SCCb,
  author =       "P. J. Plauger",
  title =        "{Standard C/C++}: {A} Singly Linked List",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "8--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "Every design involves tradeoffs. The trick is to
                 tradeoff using much the same principles as for related
                 designs.",
  acknowledgement = ack-nhfb,
}

@Article{Loudon:2000:II,
  author =       "Kyle Loudon",
  title =        "An Introduction to Interpolation",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "20--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "There's more to mathematical interpolation than just
                 drawing lines between dots.",
  acknowledgement = ack-nhfb,
}

@Article{Gareau:2000:TML,
  author =       "Jean L. Gareau",
  title =        "Tracking Memory Leaks under {Windows CE}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "36--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "Visual C++ omits the darndest things in its support
                 for Windows/CE. Too bad memory tracking is one of those
                 things.",
  acknowledgement = ack-nhfb,
}

@Article{Meyers:2000:HNM,
  author =       "Scott Meyers",
  title =        "How Non-Member Functions Improve Encapsulation",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "44--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "When it comes to encapsulation, sometimes less is
                 more.",
  acknowledgement = ack-nhfb,
}

@Article{Reichard:2000:SC,
  author =       "Douglas Reichard",
  title =        "Shim Classes",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "53--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "You don't always have to rewrite ordinary classes as
                 templates to get the benefits of templatization.",
  acknowledgement = ack-nhfb,
}

@Article{Labbe:2000:SCP,
  author =       "Roger Labbe",
  title =        "Solving Combinatorial Problems with {STL} and
                 Backtracking",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "56--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "The STL approach extends nicely to problems of all
                 sorts, and helps make for more generic solutions.",
  acknowledgement = ack-nhfb,
}

@Article{Saks:2000:CTPb,
  author =       "Dan Saks",
  title =        "{C++} Theory and Practice: Replacing Character Arrays
                 with Strings, Part 2",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "65--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "Higher-level constructs have their overheads, but they
                 are generally worth the cost.",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:BRE,
  author =       "Marc Briand",
  title =        "Book Review: {{\em Exceptional C++}}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "73--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSCb,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Common Design Mistakes, Part
                 2",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "77--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "Pete offers more examples of how not to rush code to
                 market, from the wonderful world of Java Standard
                 Libraries.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UED,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Dies Irae",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "85--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "Bobby rings out the old with some traditional bugs and
                 a new C Standard, then rings in the new with fingers
                 crossed.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPb,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "94--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMb,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "98--??",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Kelly-Bootle:2000:PMDa,
  author =       "Stan Kelly-Bootle",
  title =        "Post-Mortem Debunker: Pure vs. Applied",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "2",
  pages =        "104--104",
  month =        feb,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0002/0002toc.htm?topic=articles",
  abstract =     "In theory, there's no difference between theory and
                 practice, but in practice there is.",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFc,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "6--6",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Plauger:2000:SCCc,
  author =       "P. J. Plauger",
  title =        "{Standard C/C++}:Testing Conformance",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "10--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "It's impossible to prove conclusively that an
                 implementation conforms to a standard, but you can at
                 least build some level of confidence.",
  acknowledgement = ack-nhfb,
}

@Article{Guinan:2000:CPD,
  author =       "Jamie Guinan",
  title =        "Cross-Platform Development Using {GCC}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "18--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "You can build any number of native and cross compilers
                 from GCC, if you know how.",
  acknowledgement = ack-nhfb,
}

@Article{Getov:2000:OUM,
  author =       "Radoslav Getov",
  title =        "Not-So-Obvious Utility Macros",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "27--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "We all know the preprocessor is primitive and ugly.
                 Nevertheless, a clever macro or two can still come in
                 handy more often than we care to admit.",
  acknowledgement = ack-nhfb,
}

@Article{Bas:2000:FNS,
  author =       "Antonio G{\'o}miz Bas",
  title =        "Finding Neat Scales for Plotting",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "42--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "Labeling axes is easy for people. For a computer, it's
                 rather less obvious.",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:IJA,
  author =       "Chuck Allison",
  title =        "{\tt import java.*}: Arrays",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "46--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "Java arrays are very much like those in C/C++, except
                 where they're not.",
  acknowledgement = ack-nhfb,
}

@Article{Telford:2000:TDP,
  author =       "Alex Telford",
  title =        "Taming the {$3$-D} Perspective Transform",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "57--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "Showing objects in perspective requires only simple
                 math, but a little not-so-simple strategy makes for a
                 friendlier display.",
  acknowledgement = ack-nhfb,
}

@Article{Faul:2000:EMB,
  author =       "Ben Faul",
  title =        "An Embedded Memory-Based {SQL} Class for {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "64--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "SQL and C++ make a powerful combination, particularly
                 if you don't have to do the combining yourself.",
  acknowledgement = ack-nhfb,
}

@Article{Smith:2000:SBW,
  author =       "Mark L. Smith",
  title =        "An {STL}-Based {$N$}-Way Set",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "76--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "Databases support access with multiple keys. Why not
                 allow the same latitude with an STL-style container?",
  acknowledgement = ack-nhfb,
}

@Article{Lowy:2000:MPO,
  author =       "Juval Lowy",
  title =        "Making Primitive Objects Thread Safe",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "85--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "All sorts of things need thread locks. A fairly simple
                 template or two can do the job.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UEC,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: {\tt comp.cuj.qa.moderated}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "89--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  abstract =     "Never one to let his uncertainty show, Bobby
                 nevertheless falls prey to Heisenberg.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPc,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "95--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMc,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "3",
  pages =        "99--??",
  month =        mar,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0003/0003toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFd,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "6--6",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Plauger:2000:SCCd,
  author =       "P. J. Plauger",
  title =        "{Standard C/C++}: Testing {C++} Library Conformance",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "10--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "Now that we have a standard for C++ libraries, we need
                 to know how to determine which libraries conform to the
                 standard.",
  acknowledgement = ack-nhfb,
}

@Article{Lacoude:2000:PEC,
  author =       "Philippe Lacoude and Grum Ketema",
  title =        "Programming {Excel COM} Objects in {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "22--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "Excel is a powerful tool that you can use from a C++
                 program, once you get the protocol right.",
  acknowledgement = ack-nhfb,
}

@Article{Kougiouris:2000:SYC,
  author =       "Panos Kougiouris",
  title =        "Stressing Your {COM} Objects",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "30--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "The best known way to detect synchronization errors in
                 code is simply to pound on it to see if it breaks.",
  acknowledgement = ack-nhfb,
}

@Article{Powell:2000:VNF,
  author =       "Gary Powell and Martin Weiser",
  title =        "{Views}, {A} New Form of Container Adaptors",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "40--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "There's more than one way to slice a container. Views
                 provide a particularly sharp knife.",
  acknowledgement = ack-nhfb,
}

@Article{Offer:2000:ELI,
  author =       "Brad Offer",
  title =        "Error Logging with {Iostreams}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "52--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "You don't have to sacrifice the convenience of
                 Iostreams while debugging, at least not if they're
                 packaged properly.",
  acknowledgement = ack-nhfb,
}

@Article{Niklas:2000:CSD,
  author =       "Michal Niklas",
  title =        "A Class for Scanning Directories",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "60--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "Expanding wildcard filenames is something you want to
                 do uniformly across many utilities and different
                 operating systems.",
  acknowledgement = ack-nhfb,
}

@Article{Bavestrelli:2000:BHD,
  author =       "Giovanni Bavestrelli",
  title =        "Building {HTML} Documents with {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "67--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "The block structure of C++ can really help you get the
                 block structure of HTML right.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSCc,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Casts and Conversions",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "73--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "Type casting is a blunt instrument in C. The four
                 different casts in C++ are safer, but still require
                 care when used.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UESa,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Standard Deviation",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "81--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "The Microsoft support desk continues under Bobby's
                 stewardship, even as he aspires to discuss Standard
                 C++.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPd,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "86--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMd,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "90--??",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Kelly-Bootle:2000:PMDb,
  author =       "Stan Kelly-Bootle",
  title =        "Post-Mortem Debunker: Shall {I} Compare Thee \ldots{}
                 Why Not?",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "4",
  pages =        "96--96",
  month =        apr,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:25 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0004/0004toc.htm?topic=articles",
  abstract =     "Stan mitigates the odium in comparison by being, as
                 usual, marginally scrutable.",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFe,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "6--6",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Plauger:2000:SCCe,
  author =       "P. J. Plauger",
  title =        "{Standard C/C++}: {\tt exit(0)}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "10, 14, 16",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "All good things must come to an end.",
  annote =       "P. J. Plauger announces his retirement from C/C++
                 Users Journal column writing.",
  acknowledgement = ack-nhfb,
}

@Article{Howard:2000:UPW,
  author =       "David M. Howard",
  title =        "Using Predicate Waits with {Win32} Threads",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "18--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "Most Win32 synchronization primitives are just that
                 --- primitive. But you can use them to build queues
                 that are safe and easy to use.",
  acknowledgement = ack-nhfb,
}

@Article{Calkins:2000:ITT,
  author =       "Charles Calkins",
  title =        "Integrating Threads with Template Classes",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "32--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "It's obviously a good idea to encapsulate a thread as
                 an object. It is less obvious how to get all the
                 interfaces right.",
  acknowledgement = ack-nhfb,
}

@Article{Kleber:2000:TSA,
  author =       "Jeff Kleber",
  title =        "Thread-Safe Access to Collections",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "36--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "The best place to store a thread lock for a shared
                 container is somewhere inside the container --- deep
                 inside.",
  acknowledgement = ack-nhfb,
}

@Article{Phillips:2000:VDI,
  author =       "Dwayne Phillips",
  title =        "Visualizing Depth Images via Rendering",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "40--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "In case you thought that Dwayne Phillips had exhausted
                 the topic of imaging in these pages, here's another
                 interesting installment.",
  acknowledgement = ack-nhfb,
}

@Article{Guillemot:2000:CUR,
  author =       "Marc Guillemot",
  title =        "Catching Untested Return Codes",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "54--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "Who watches the watchers, at least to make sure
                 they're watching? This class does.",
  acknowledgement = ack-nhfb,
}

@Article{Lafreniere:2000:SMD,
  author =       "David Lafreniere",
  title =        "State Machine Design in {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "58--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "It's not all that hard to implement a finite-state
                 machine, unless it's very large, and you have to worry
                 about multithreading, and \ldots{}.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSWa,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: When ``Retro'' Is Better",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "67--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "The old ways aren't always the best ways, but they
                 often are pretty darned good.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UER,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Remembrance",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "75--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  abstract =     "Bobby finds still more to warn about when playing fast
                 and loose with pointers, smart pointers, and arrays.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPe,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "80--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMe,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "84--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFf,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "6--6",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:IJS,
  author =       "Chuck Allison",
  title =        "{\tt import java.*}: Strings",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "Every language lets you manipulate text to some
                 degree. Java is stronger in this regard than most.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPf,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMf,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Batov:2000:SER,
  author =       "Vladimir Batov",
  title =        "Safe and Economical Reference-Counting in {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "Smart pointers keep getting smarter.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:GES,
  author =       "Thomas Becker",
  title =        "Generic Extensions to the {STL}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "STL is a pretty complete set of tinker toys, but you
                 can always find a few more good ones to add.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSF,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Floating-Point Basics",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "You can't overcome a fear of floating-point arithmetic
                 --- or complacency about it --- until you understand
                 what's going on.",
  acknowledgement = ack-nhfb,
}

@Article{Berry:2000:CBM,
  author =       "David Berry",
  title =        "Combining {Boyer-Moore} String Search with Regular
                 Expressions",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "Some text searches are fast and some are flexible.
                 This one is both.",
  acknowledgement = ack-nhfb,
}

@Article{Kelly-Bootle:2000:PMDc,
  author =       "Stan Kelly-Bootle",
  title =        "Post-Mortem Debunker: From {MAW} to {MAM}, More?",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "What's in a name? Kelly-Bootle gets the last word even
                 when talking to roses.",
  acknowledgement = ack-nhfb,
}

@Article{Perry:2000:RNSa,
  author =       "Michael L. Perry",
  title =        "A Reusable Nonlinear System Solver, Part 1",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "C++ lets you encapsulate the Newton-Raphson method for
                 solving equations without obscuring the underlying
                 physical problem to be solved.",
  acknowledgement = ack-nhfb,
}

@Article{Philips:2000:DMS,
  author =       "Lawrence Philips",
  title =        "The Double Metaphone Search Algorithm",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "Computer vision is a broad and deep topic, but
                 computer hearing is no breeze either, particularly when
                 trying to recognize surnames.",
  acknowledgement = ack-nhfb,
}

@Article{Rogers:2000:SON,
  author =       "Joey Rogers",
  title =        "The Self-Organizing Neural Network",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "People can learn even when they don't know what
                 they're being taught. So can neural nets.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UESb,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Semper Fi",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles",
  abstract =     "Bobby reassures us that the dark side of the force
                 need not be all that dark.",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFg,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "6--6",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:SUT,
  author =       "Marc Briand",
  title =        "Simple Unit Tests in {C++}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "10--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "Unit testing is a tedious, but often necessary,
                 adjunct to writing code. A few template classes can
                 eliminate much of the tedium and improve encapsulation
                 in the bargain.",
  acknowledgement = ack-nhfb,
}

@Article{Bramley:2000:DBA,
  author =       "Michael Bramley",
  title =        "Data-Based Axis Determination",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "20--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "Labeling the axes of a graph is not as easy as you
                 might think.",
  acknowledgement = ack-nhfb,
}

@Article{Rogers:2000:CFC,
  author =       "Joey Rogers",
  title =        "Copying Files from the Clipboard to a Command Prompt",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "28--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "You can make DOS more of a first-class Windows citizen
                 with this handy little clipboard utility.",
  acknowledgement = ack-nhfb,
}

@Article{Morana:2000:BBD,
  author =       "Marco Morana",
  title =        "Browser-Based Directory Access through {LDAP} and
                 {COM}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "34--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "You can do a lot with LDAP --- once you get all the
                 glue right.",
  acknowledgement = ack-nhfb,
}

@Article{Barnes:2000:IOP,
  author =       "Paul Barnes",
  title =        "Implementation of Observer Pattern",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "50--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "Many applications involve observers waiting for
                 notification. Getting the logic right for both
                 publishers and subscribers is something you don't want
                 to have to do repeatedly.",
  acknowledgement = ack-nhfb,
}

@Article{Creux:2000:TTC,
  author =       "Valery Creux",
  title =        "Tree Traversal in {C} without Recursion",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "56--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "If you can spare one bit of storage in each node, you
                 can traverse a tree without recursive function calls.",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:IJF,
  author =       "Chuck Allison",
  title =        "{\tt import java.*}: Formatted Text and Locales",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "60--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "Java offers more formatting power than C, but not
                 necessarily in a more convenient package.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSE,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Error in Floating-Point
                 Calculations",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "73--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "And you thought error, accuracy, precision, and
                 significance were pretty synonymous.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UEA,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Adventures of {Aquaman}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "85--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  abstract =     "Bobby shows how to outsmart the compiler several
                 different ways, even if he can't outsmart the stock
                 market.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPg,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "95--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMg,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "7",
  pages =        "99--??",
  month =        jul,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0007/0007toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFh,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "6--6",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Bianchi:2000:CVC,
  author =       "Luigi Bianchi",
  title =        "Converting {VCL} Components to {Windows} Resources",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "10--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Borland C++Builder has its own version of resource
                 files, but they can be translated to more conventional
                 {\tt .RC} files.",
  acknowledgement = ack-nhfb,
}

@Article{Hanov:2000:LWW,
  author =       "Steve Hanov",
  title =        "A Lightweight Window Wrapper",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "26--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Even the simplest aspects of window management can
                 benefit from a bit of encapsulation.",
  acknowledgement = ack-nhfb,
}

@Article{Perry:2000:RNSb,
  author =       "Michael L. Perry",
  title =        "A Reusable Nonlinear System Solver, Part 2",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "32--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "It's not enough to have a general equation solver ---
                 you have to know how to talk to it.",
  acknowledgement = ack-nhfb,
}

@Article{Hsiao:2000:SPF,
  author =       "Gary Hsiao",
  title =        "A Simple Persistence Framework",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "46--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Think of a persistent object broker as a poor man's
                 database. Then think of all the ways you might use
                 it.",
  acknowledgement = ack-nhfb,
}

@Article{Hicks:2000:CCT,
  author =       "Craig Hicks",
  title =        "{C/C++} Tips: Tip \#1: Creating an Index Table in {STL}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "61--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "STL doesn't do everything, but often a missing bit of
                 functionality can be assembled from available parts.",
  acknowledgement = ack-nhfb,
}

@Article{Swaim:2000:SLR,
  author =       "David C. {Swaim II}",
  title =        "A Simple Linear Regression Class",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "62--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Even an operation as simple as linear least squares
                 can benefit from encapsulation in a class.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSU,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Unraveling Multithreading",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "71--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Sometimes you have to spend a lot of time on just a
                 little bit of code, to avoid spending much more time
                 not knowing where to begin debugging.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UESc,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Soft Geek Cafe",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "83--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Outsmarting the compiler, and/or the Standard C and
                 C++ libraries, can sometimes take a remarkable amount
                 of trickery.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPh,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "87--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMh,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "91--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Kelly-Bootle:2000:PMDd,
  author =       "Stan Kelly-Bootle",
  title =        "Post-Mortem Debunker: Whichever Comes First",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "96--96",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles",
  abstract =     "Stan takes an intelligently artificial look at the
                 artificially intelligent artificers.",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFi,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "6--6",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Moreno:2000:HDT,
  author =       "Carlos Moreno",
  title =        "{HTML} Document Templates for {CGI} Applications",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "10--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "Get the power of C/C++ programming with the
                 flexibility of HTML by keeping the two at arms
                 length.",
  acknowledgement = ack-nhfb,
}

@Article{Nelson:2000:NPL,
  author =       "Erik Nelson",
  title =        "Network Programming with {Linux}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "26--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "TCP isn't the only protocol for swapping data packets,
                 nor is it always the most effective.",
  acknowledgement = ack-nhfb,
}

@Article{Smereka:2000:TIS,
  author =       "Richard Smereka",
  title =        "A {TCP\slash IP} Socket Location Server",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "34--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "You can write remarkably portable network-aware code,
                 if you are careful how you isolate the dependencies.",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:SAU,
  author =       "Chuck Allison",
  title =        "The Simplest Automated Unit Test Framework That Could
                 Possibly Work",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "48--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "Testing is a necessary evil to many programmers, but
                 it doesn't have to be all that evil.",
  acknowledgement = ack-nhfb,
}

@Article{Bromberg:2000:TAR,
  author =       "Boris Bromberg",
  title =        "Tracing an Application in Release Configuration",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "62--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "A lightweight trace facility is less likely to distort
                 performance in the final stress of debugging.",
  acknowledgement = ack-nhfb,
}

@Article{Cacciola:2000:CCT,
  author =       "Fernando Cacciola",
  title =        "{C/C++} Tips: Tip \#2: Generic Constants for Generic Programming",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "65--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "If you're going to write generic code, make sure it's
                 completely generic.",
  acknowledgement = ack-nhfb,
}

@Article{Phillips:2000:BRP,
  author =       "Dwayne Phillips",
  title =        "Book Review: {{\em The Pragmatic Programmer}}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "66--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "There's more to programming than algorithms and
                 programming languages --- much more.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:SGPa,
  author =       "Thomas Becker",
  title =        "{STL} \& Generic Programming: Welcome to {STL} and
                 Generic Programming",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "70--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "Another Becker joins CUJ's editorial team to cover one
                 of the most important areas of C++ programming.",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:IJC,
  author =       "Chuck Allison",
  title =        "{\tt import java.*}: Collections and Algorithms",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "76--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "Java lacks both a standard and templates, but it
                 nevertheless offers something resembling the C++
                 Standard Template Library.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UEB,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: The Ballad of {Ned Kelly}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "94--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  abstract =     "Bobby gets hitched, pines for Oz, and deals with
                 several common confusions in C/C++, all in one
                 action-packed episode.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPi,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "103--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMi,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "9",
  pages =        "107--??",
  month =        sep,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0009/0009toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFj,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "6--6",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Cacciola:2000:IVT,
  author =       "Fernando Cacciola",
  title =        "An Improved Variant Type Based on Member Templates",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "10--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "C has generic pointers and varying length argument
                 lists for flexibility. C++ has templates for even more
                 flexibility, and better type safety in the bargain.",
  acknowledgement = ack-nhfb,
}

@Article{Queisser:2000:CRW,
  author =       "Andrew Queisser",
  title =        "Classes for Reading and Writing Parameter Blocks",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "22--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "Fortran IV let you read and write variables by name
                 since the 1960s. It still makes sense to do so in
                 C++.",
  acknowledgement = ack-nhfb,
}

@Article{Nash:2000:IFT,
  author =       "Alan Nash",
  title =        "Introduction to Function {\tt try} Blocks",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "32--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "Exceptions can occur in the darndest places.
                 Fortunately, {\tt try} blocks can also be written in most of
                 those places.",
  acknowledgement = ack-nhfb,
}

@Article{Niec:2000:OSO,
  author =       "Todd Niec",
  title =        "Optimizing Substring Operations in String Classes",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "40--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "If reference counting is good for operations on whole
                 strings, it should be good for operations on substrings
                 too.",
  acknowledgement = ack-nhfb,
}

@Article{Meyers:2000:NCIa,
  author =       "Randy Meyers",
  title =        "The New {C}: Introducing {C99}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "49--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "C99 is much like C89, but with more of the same ---
                 lots more of the same.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:JSWb,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: When Bad Things Happen to Good
                 Numbers",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "54--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "It takes a lot of preparation to write really robust
                 floating-point code.",
  acknowledgement = ack-nhfb,
}

@Article{Becker:2000:SGPb,
  author =       "Thomas Becker",
  title =        "{STL} \& Generic Programming: The Template Compilation
                 Model",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "65--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "Templates change the way compilers and linkers
                 interact, often in ways that are hard to fathom.",
  acknowledgement = ack-nhfb,
}

@Article{Schmidt:2000:UESd,
  author =       "Bobby Schmidt",
  title =        "Uncaught Exceptions: Sunshine Superman",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "73--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "Bobby answers several questions from the fringes of
                 valid C++.",
  acknowledgement = ack-nhfb,
}

@Article{Kelly-Bootle:2000:PMDe,
  author =       "Stan Kelly-Bootle",
  title =        "Post-Mortem Debunker: Angelology",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "88--88",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  abstract =     "Stan muses on pinheads who get rich and heads of pins
                 that are angel poor.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPj,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "103--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMj,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "10",
  pages =        "107--??",
  month =        oct,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0010/0010toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFk,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "6--6",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Thierauf:2000:EDP,
  author =       "Rainer Thierauf",
  title =        "Extracting Data from {$X$-$Y$} Plots",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "10--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "Scanners now input text with reasonable accuracy ---
                 why not graphical data as well?",
  acknowledgement = ack-nhfb,
}

@Article{Ehlinger:2000:CTM,
  author =       "Early Ehlinger",
  title =        "Creating Truly Maintainable Class Factories",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "22--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "It is usually best to recycle code already written,
                 particularly if it's easy to get wrong.",
  acknowledgement = ack-nhfb,
}

@Article{Gibbons:2000:PTO,
  author =       "Bill Gibbons",
  title =        "A Portable ``{\tt typeof}'' Operator",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "34--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "Here's a not-so-stupid template trick that mostly
                 meets the need for a {\tt typeof} operator.",
  acknowledgement = ack-nhfb,
}

@Article{Foster:2000:CCT,
  author =       "Sol Foster",
  title =        "{C/C++} Tips: Tip \#3: Creating an Index Table in {STL}, Take 2",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "41--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "Pointers seldom sort the way you intend, but STL
                 offers a handy way to say what you really mean.",
  acknowledgement = ack-nhfb,
}

@Article{Scanlon:2000:SWB,
  author =       "Mike Scanlon",
  title =        "Secure {Web}-Based Licensing",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "42--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "If you want to protect your software from misuse, you
                 have to outsmart potential thieves and still not annoy
                 your legitimate customers. This is not as easy as you
                 might at first think.",
  acknowledgement = ack-nhfb,
}

@Article{Button:2000:BRS,
  author =       "Brian Button",
  title =        "Book Review: {{\em Standard C++ IOStreams and
                 Locales}}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "51--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Austern:2000:SLI,
  author =       "Matt Austern",
  title =        "The {Standard Librarian}: {IOStreams} and {Stdio}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "55--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "You can mix C and C++ I/O operations, but you have to
                 be careful if you don't want garbled streams.",
  acknowledgement = ack-nhfb,
}

@Article{Allison:2000:IJB,
  author =       "Chuck Allison",
  title =        "{\tt import java.*}: Basic Stream {I/O}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "58--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "Java supports input/output of streams with a gazillion
                 combinations of options.",
  acknowledgement = ack-nhfb,
}

@Article{Sutter:2000:SMC,
  author =       "Herb Sutter",
  title =        "{Sutter's Mill}: Constructor Failures (or, The Objects
                 That Never Were)",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "72--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "Exceptions thrown during object construction must be
                 handled with extreme care.",
  acknowledgement = ack-nhfb,
}

@Article{Meyers:2000:NCIb,
  author =       "Randy Meyers",
  title =        "The New {C}: It All Began with {FORTRAN}",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "80--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  abstract =     "Sometimes the best way to improve a language is to
                 make it look more like the one it set out to obsolete
                 30 years earlier.",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:NPk,
  author =       "Anonymous",
  title =        "New Products",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "88--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:2000:WMk,
  author =       "Anonymous",
  title =        "We Have Mail",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "11",
  pages =        "92--??",
  month =        nov,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:28 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0011/0011toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Briand:2000:EFl,
  author =       "Marc Briand",
  title =        "{Editor}'s Forum",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "12",
  pages =        "6--6",
  month =        dec,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:29 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0012/0012toc.htm?topic=articles",
  acknowledgement = ack-nhfb,
}

@Article{Phillips:2000:RIN,
  author =       "Dwayne Phillips",
  title =        "Removing Image Noise with Adaptive Filters",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "12",
  pages =        "10--??",
  month =        dec,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:29 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0012/0012toc.htm?topic=articles",
  abstract =     "There is no such thing as a universal filter, but we
                 can get close by building one that adapts to the local
                 noise. Dwayne Phillips walks us through the math to
                 make a filter look a little bit smart.",
  acknowledgement = ack-nhfb,
}

@Article{Wu:2000:ECC,
  author =       "Wenfei Wu",
  title =        "Effective Contour Creation with {OpenGL} Texture
                 Mapping",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "12",
  pages =        "24--??",
  month =        dec,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:29 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0012/0012toc.htm?topic=articles",
  abstract =     "In graphics applications, ``let the hardware do it''
                 is generally good advice. Today's graphics hardware
                 keeps getting better and better, and OpenGL knows how
                 to exploit its capabilities. Even producing contour
                 plots can be a fairly painless operation.",
  acknowledgement = ack-nhfb,
}

@Article{Bavestrelli:2000:CTD,
  author =       "Giovanni Bavestrelli",
  title =        "A Class Template for {$N$}-Dimensional Generic
                 Resizable Arrays",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "12",
  pages =        "32--??",
  month =        dec,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:29 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0012/0012toc.htm?topic=articles",
  abstract =     "Need dynamic arrays that are efficient and intuitive?
                 Try a little template recursion and specialization.",
  acknowledgement = ack-nhfb,
}

@Article{Peterson:2000:CCT,
  author =       "Mark Peterson",
  title =        "{C/C++} Tips: Tip \#4: Self Destructing Threads",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "12",
  pages =        "44--??",
  month =        dec,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:29 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0012/0012toc.htm?topic=articles",
  abstract =     "A way to make threads easier to manage.",
  acknowledgement = ack-nhfb,
}

@Article{Dewhurst:2000:CKF,
  author =       "Steve Dewhurst",
  title =        "Common Knowledge: Fungible Control Structures",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "12",
  pages =        "46--??",
  month =        dec,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =