Given the complexity of modern computer programming languages, it is little wonder that professional software developers make extensive use of technical reference books. The sheer quantity of detailed information that must be known in order to write source code, can at times be overwhelming. Despite commendable strides made on the part of language vendors to make this information available online within the products themselves, computer programmers usually find these online help facilities to be inadequate — lacking in examples, coherence, and usability. That is where the "dead tree editions" prove their value: Weighty technical books are able to convey large amounts of information on the various programming languages, database systems, Web technologies, and other areas of interest to software developers. In addition, these volumes are easy to skim through, are less straining to the eyes than a CRT, and unquestionably easier to tuck into bed with... in order to cure insomnia.
Yet as the cost of producing CDs has dropped, more of these delightful doorstops are being beefed up — not that they need it — with supplemental CD-ROMs, usually packaged in tamper-proof plastic sleeves inside the back cover. These disks, now supplanting the earlier diskettes, are invariably stuffed with such goodies as the complete sample code from the text itself (including all the bugs...), related articles from computer journals and websites, and the ubiquitous offers from AOL and CompuServe, cleverly disguised as options for connecting to the Internet in order to receive more information. Some of these CD-ROMs even include an online copy of the entire book. Unfortunately, the most common format selected for these online books is PDF, a choice which limits the material to being read only by Adobe's Acrobat Reader, an application disliked the world over. Admittedly, Acrobat Reader is offered free at this time. But Adobe has achieved extensive market saturation — enough so that PDF is the de facto standard on the Internet for documents that require the images and formatting to be contained in one file. In turn, there is no guarantee that Adobe will not begin charging for future versions. Another option for document formatting is HTML, which offers many advantages over PDF: HTML files are simple text files, and thus faster to load, print, and analyze by other applications. Also, being ASCII text files, they consume far less space than if they were in any binary format, including PDF. Moreover, HTML is an open standard, with less risk than any of the proprietary formats.
O'Reilly & Associates, a technical publisher known for its support of open technologies, has embraced HTML as the standard format for its books when made available online. An outstanding example of this is the book under review, The Oracle PL/SQL CD Bookshelf (published on 1 July 2000 under the ISBN 978-1565928497), which is essentially the complete text of seven O'Reilly PL/SQL books, in HTML, on a single CD-ROM. They are: Oracle PL/SQL Programming, Advanced Oracle PL/SQL Programming with Packages, Oracle Web Applications, Oracle Built-in Packages, Oracle PL/SQL Language Pocket Reference, Oracle PL/SQL Built-ins Pocket Reference, and Oracle PL/SQL Programming: A Guide to Oracle8i Features. The CD-ROM has been combined with a paper-based copy of the last title, written by Steven Feuerstein.
Not only has O'Reilly created this CD Bookshelf for PL/SQL, it offers similar CD products for Perl, Unix, networking, XML, Web design, Java Enterprise, and Linux Web server. Even more innovative is O'Reilly's "Safari Bookshelf", a subscription-based Web service which allows readers to access even more books from their Safari website. An added bonus to the Safari service is that the subscriber can read the most up-to-date editions.
But for ease-of-use, even a most recent paper-based edition of a book cannot compare with an earlier edition in HTML format. Given a complete index and/or a high-quality search facility, programmers are able to quickly look up the needed nuggets of information, without leaving their computer in search of a dusty tome. In this day and age of broadband access to the Web, most developers already have a browser up and running, and can easily open one of these O'Reilly bookshelves, especially if it has been bookmarked in their browser. To a programmer who has never before used the HTML versions of technical books, it may seem unusual using a Web browser to reference books. But it can take little usage to convince the most skeptical of developers that the convenience and time-saving are well giving it a chance. At this point, it is the best way of packaging so much of the technical information that is critical to any professional programmer's livelihood. Soon the dog-eared papyrus versions will be relegated to the basement, garage, storage unit, or Half.com inventory listing.
It should be noted that just because a publisher has decided to put the sample source code and other enticements onto an accompanying CD-ROM, does not guarantee that it is worth the buyer's time tearing open the protective plastic sleeve. As noted previously, all of the faults to be found in the book's source code will in all likelihood be faithfully reproduced in the online version. Moreover, given how little apparent care is being put into the sample code used in many of the technical books on the market, this is not a trivial issue. This is especially true for the programmer who attempts to run that code on their own computer — and as a result, ends up debugging the author's sloppy work. The wise buyer will consult the errata page for the book, on the publisher's website. But even that does not insure pain-free debugging, because some publishers have done an amazingly poor job of presenting the known errors. For instance, Wrox Press "organizes" the errata for some if not all of their Java books in chronological order, according to when the (many) errors are reported by their frustrated readers.
Returning to the title under consideration, The Oracle PL/SQL CD Bookshelf, this review will not attempt to evaluate all seven books contained on the CD-ROM. Rather, brief commentary will be provided on the usability of the online books, as well as the paper-based title that accompanies the CD-ROM, Oracle PL/SQL Programming Guide to Oracle8i Features.
As previously mentioned, all of the Bookshelf titles are in HTML format. Thus they can be fully read by any Web browser that supports images. The books are completely searchable and cross-referenced. Each individual title has its own index (just as in the dead-tree renditions), but there is also a master index for the entire Bookshelf. Of course, given that the pages are viewed inside of a Web browser, searching for keywords on the current page is faster using the browser's Find facility, instead of the reader's eyeball facility.
Some readers may find the Bookshelf's integrated search facility problematic, especially if they are using Netscape as their browser, or using a link in an HTML file to initially run a Bookshelf installed on their hard-drive. In the present edition of The Oracle PL/SQL CD Bookshelf (as well as the Web Developer's Library), O'Reilly chose to use JHLSearch, a freeware search engine which uses a Java applet. According to some websites, there is no indication that this product will be further developed in the future. This reviewer has experienced difficulties in the past, specifically, the search applet (appropriately named "SearchApplet"!) not being found by the search engine. This may have been a result of the Java Runtime Environment (JRE) and/or the use of relative paths by JHLSearch to locate the source code files. For instance, if the PL/SQL CD Bookshelf has been installed on a Windows PC, in the directory C:\Program Files\PL-SQL Bookshelf\, then the HTML file C:\Program Files\PL-SQL Bookshelf\jobjects\fsearch.htm did not work when accessed from an HTML link. It did appear to work when this reviewer double-clicked the index.htm icon in C:\Program Files\PL-SQL Bookshelf\ or in the root directory of the CD-ROM, or if either was opened in a Web browser using File > Open. But it would always fail if the writer clicked on a link to it in an HTML file. On the other hand, it was admittedly a small price to pay for the advantages of having this valuable PL/SQL information literally at one's keyboarding fingertips. Moreover, the indices work well, and may end up being used more frequently than the search engine, by the typical reader. At this time, the search engine works fine on the reviewer's machine, in both Mozilla and Internet Explorer, after a recent installation of the JRE.
The companion volume to the PL/SQL CD Bookshelf is Oracle PL/SQL Programming Guide to Oracle8i Features, written by the well-known author Steven Feuerstein. His volume describes many of the over 150 features added to Oracle8 in order to create Oracle8i, Oracle self-proclaimed "Internet database". The most dramatic change of all is the integration of Java into the Oracle Database product. This means that stored procedures can now be written in Java, thus giving the Oracle developer a choice of languages for compiled code, other than the venerable PL/SQL. These Java stored procedures (JSPs) are executed by a Java Virtual Machine (JVM) built right into the database. In order to assist in the development of Java code, Oracle offers JDeveloper, a full-featured integrated development environment (IDE). Additional features found in Oracle8i include the Internet File System (iFS), support for SQLJ and Java Database Conductivity (JDBC), WebDB (since renamed Oracle Portal), interMedia (for the storage and management of multimedia content), the invoker rights model, autonomous transactions, and support for Linux.
But just in case the reader fears the demise of companion diskettes in favor of the more chic CD-ROMs, this book has a diskette, sealed in an envelope in the back cover. It contains the "Companion Reference", an online tool developed by RevealNet (subsequently absorbed into Quest Software). This tool provides the user with easy access to source code written by Stephen Feuerstein, contained in about 100 files. The companion diskette also contains a "lite" version of the PLVtmr package, developed by Feuerstein, and useful for testing the performance of Oracle programs. Like the offerings on most companion diskettes and CDs, the neutered application can be downloaded from the vendor's website.
As is typical with other titles written by Steven Feuerstein, once the reader has progressed past the uncomfortably political author's dedication, the technical content of the book is excellent. Steven is well known for his clear explanations and straightforward examples. This publication is no exception. His skills in explaining Oracle concepts clearly were amply demonstrated at a recent user group meeting for a popular Oracle tool — an event held earlier this year in San Diego. This reviewer had the pleasure of attending the session during which Feuerstein explained good practices in PL/SQL programming. The clarity of his explanations were in stark contrast to the chaotic and largely unintelligible meanderings of the presenter who preceded and followed Steven. What is remarkable is that, unlike the other speaker, Steven did not have the advantage of seeing people's reactions, be they nods of understanding or squints of puzzlement. That is because he was not physically present at the user group meeting, but instead had to dial in, and give his presentation over the telephone!
However, unlike other Feuerstein titles seen by this reviewer, the politics do not thankfully end with the author's dedication page. Instead, this volume is rife with gratuitously political statements. For example: "Kissinger" and "Secret Bombing of Cambodia", "warcrimes_pkg", "Spend rest of life in prison", "people are killed by law enforcement officers", "SELECT COUNT(guns) FROM charlton_heston_home", "gun_happy", "fire_em_all", "ceo_compensation", "layoff_count", "no_salary_when_fired", "pick_nato_targets", "maternity_ward_ok", "weed_out_poor_and_sick", "nra_members" and "non_killers", etc. This type of non-standard sample material is distracting and difficult to read, in more ways than one: Not only are these relentless political statements offensive to readers who do not share Feuerstein's liberal views, but eventually the reader inevitably begins focusing more on the provocative statements, and wondering what inflammatory statements will come next, to the point of making some of the PL/SQL text initially confusing. For instance, after seeing the anti-gun material, "trigger to firing" takes on a second meaning — which certainly does not help comprehension of the technical information. In addition, the reader's emotional reaction to Feuerstein's tiresome preaching may completely turn them off O'Reilly books. It's difficult learning and absorbing nontrivial programming concepts when still thinking about NATO bombs and dead babies. Perhaps that is Feuerstein's intent. But a technical book is the wrong platform for him to be espousing his personal opinions. As the publisher of this inappropriate material, O'Reilly has exercised astonishingly poor judgment. One can only hope that in the future, O'Reilly will encourage its authors to use more restraint, and to exhibit greater professionalism in writing their works.
Aside from the unfortunate negativity of the aforesaid politics, The Oracle PL/SQL CD Bookshelf should be on the desk and hard drive of every serious Oracle developer. Portability is one of the major advantages of having these invaluable PL/SQL books online. The sheer weight and volume of all seven titles would make lugging them from home to office and back, rather inconvenient, if even that were an option for the typically under-exercised programmer. The binary nature of these books makes it tempting to simply install them on both home and office computers — or the laptop carried back and forth. Also, O'Reilly deserves to be applauded for selecting HTML instead of PDF as the format for their online books (in the Bookshelves and on their Safari website), and for making their high-quality titles — Oracle and otherwise — easily accessible within a simple Web browser by the appreciative reader. To read the errata and other reviews of this title, check the O'Reilly Web page for the book.