The usual glitz and glamor were in evidence at the 11th Annual Software Development Magazine Jolt Product Excellence Awards presentation at Software Development West in San Jose, California. But there's more substance than surface to this ceremony: Most of the important new development paradigms that emerged in the past 10 yearsthe Unified Modeling Language, open source software, the Web and Javahave been recognized with Jolt Awards. This year's winners continued that shining tradition into a new decade, highlighting trends like lightweight methodologies, support for multiple operating system platforms and innovative modeling solutions.
First came the SD Developer Bowl, a software-trivia game show that pitted IBM and Borland teams against faculty and attendees. SD show director Michael "Trebek" Gottlieb kept the audience in stitches, holding the dueling developers to the time limit while Borland repeated its SD Java Super Bowl success of last year, soundly trouncing all opponents.
As the audience recuperated from this excess of frivolity, Dr. Dobb's Journal's Editor in Chief Jon Erickson took the stage to present the magazine's Excellence in Programming award to Anders Hejlsberg, author of Turbo Pascal, chief architect of Delphi and now the chief designer of C# at Microsoft.
Roger Smith and Alexandra Weber Morales were the main emcees for the evening.
"Programming is actually all about text," said Hejlsberg in his gracious acceptance speech, downplaying the importance of code-generating tools that create, in his words, "simplexitycomplexity wrapped up in something simple." Then, against a backdrop of shifting images from a decade of Software Development magazine Jolt Award issue cover shots, the inspirational strains of Strauss's Also Sprach Zarathustra subsided as Editor in Chief Alexandra Weber Morales and Technical Editor Roger Smith made their entrance to present six Jolt Product Excellence Awards and a Hall of Fame induction, as well as 17 Productivity Awards.
Readers, judges and vendors nominate books and other products on the SD magazine Web site. From the nominees, the judges select 36 finalists in all product categories and evaluate these products to choose the Jolt and Productivity Award winnersthose outstanding products that make the difficult task of developing software easier, faster, more efficient or more precise, invigorating technical team leaders and developers with a jolt of productivity.
To select the winners, Software Development evaluates six categories of products: book and computer-based training; utilities and deployment tools; design and management tools; libraries, frameworks and components; languages and development environments; and special/other. One product in each category receives the coveted Jolt Award, while the three runners-up are honored with the Productivity Award plaque.
Of all the honorees, perhaps Jim Highsmith best captured this year's zeitgeist in his book, Adaptive Software Development: A Collaborative Approach to Managing Complex Systems (Dorset House, 2000), which won the Jolt Award for Books and Computer-Based Training despite stiff competition from Alistair Cockburn's Writing Effective Use Cases (a Productivity Award winner). The fact that Cockburn and Highsmith have, as this issue goes to press, signed an agreement to edit a series on agile software development for Addison-Wesley reveals that Highsmith isn't resting on his Jolt laurelsand is taking his own collaboration advice to heart.
"Over the last 10 years, I've sat in the audience and thought, boy, it'd be pretty cool to get one of these," crowed Highsmith, hoisting aloft his Lucite-encased cola can. "Guess what: It's way cool."
The Jolt was also presented to VMware for Linux and Windows for Best Utility; GDPro from Embarcadero Technology conquered the Design and Management Tools category; SoftWIRE won in the Libraries, Frameworks and Components category; Macromedia's Dreamweaver UltraDev claimed the Special/Other prize; and the Languages and Development Environments award went to Borland's JBuilder for the second year in a row. Finally, MicroEdge's Visual SlickEdit, a cross-platform code editor, was inducted into the Jolt Award Hall of Fame.
Scott Ambler stands in for MicroEdge and accepts the Hall of Fame Award for Visual SlickEdit presented by Alexandra Weber Morales
Inaugurated four years ago for special recognition of products that, release after release, have shown serious content improvement, the Hall of Fame has honored Numega's Boundschecker, Microsoft's Visual Basic, Visio, and O'Reilly and Associates (for their role in publishing books on open source software) among its previous inductees. This year's winner was no stranger to the podium: Visual SlickEdit has won the Productivity Award four times in the past eight years.
None were more pleased, however, than the Languages and Development Environment Jolt Award winner, Borland, which packed the conference with its own cheering section.
"This is a wonderful award for us at Borland," enthused Tony de la Lama, vice president and general manager of the Java business unit for the Scotts Valley, California-based company. "On a night that Anders has been so justly awarded a richly deserved honor ... I want to acknowledge and thank him. I don't know if Borland has publicly thanked him, but he's being publicly thanked right now."
The Jolt Awards couldn't take place without the help of a distinguished panel of judges made up of Software Development's editors, columnists and writers:
Scott Ambler, contributing editor
Books and Computer-Based Training
Adaptive Software Development is probably one of the most important books about the software development process that you will ever read. In it, Jim Highsmith questions the prevailing attitudes toward "good" software development practice and presents real-world strategies suitable to today's turbulent business environment. Highsmith argues for practices that focus on leadership and collaboration rather than traditional command and control, and for balancing factors such as knowing with learning, process with people, concepts with practice and rigor with flexibility. In other words, Highsmith challenges many of the software development precepts that we take for granted.
The book's primary strength is that it acknowledges many of the practical truths of software development. First, change and uncertainty are a fundamental reality; therefore, Highsmith suggests that you not attempt to manage projects through rigid control structures or precise predictions. Second, planning is too deterministic; instead, you need to speculate and then act accordingly when deviations reveal that your speculations are wrongplanning will help you to deliver the product that you intended, whereas speculation helps you to deliver what is actually needed. Third, the application is the only acceptable model to the customer, so you should track the delivery of actual software features instead of documents: The real customers of your efforts are the end users clamoring for software, not the bureaucrats throughout your organization clamoring for paper. Fourth, technical perfection isn't a reasonable goal; instead, you should attempt technical quality, as defined by the nature of the system you are building.
Should you read this book? If you want to succeed at developing software, the answer is a resounding yes. If you can accept having your belief structure challenged, yes. If you enjoy working on failed projects, political fighting, or users who are frustrated with the quality of the work that you produce, then don't bother reading Adaptive Software Development. I'm sure there's a "Teach Yourself A New Technology in 21 Days" book that's more suited to your mindset.
Scott W. Ambler
If, like me, you love graphic design and wish you knew how to make your Web site snazzier without gunking it up with useless scripts and annoying applets, you'll eat this book up. Steve Krug works with the highest priest of magazine design, Roger Black (designer of Rolling Stone, Newsweek and many others), but applies his expertise to the Web rather than to print. It's a very quick read, excellently executed, well written and full of good advice. I plan on implementing the suggestions for usability testing on the cheap. And I'm telling everyone I know to read it. That said, I'm not sure that your average developer type, concerned with nuts and bolts, will be as enamored of it as I am, even though she or he should be, if only to avoid religious discussions about Web site functionality (discussed in a chapter and in one of the delightful original cartoons sprinkled throughout the text).
Alexandra Weber Morales
Use cases are the foundation from which intelligent representations of object-oriented designs are built. However, no one can deny that learning to translate processes into use cases has as much appeal as translating Cicero. Cockburn's book presents use cases in an intelligent, approachable manner. He shows how to design them simply, effectively and, most important, completely. After reading this book, most readers will discover a newfound ability to properly capture a process in the UML illustration format. More so, they will know they have captured it correctly. For teaching this skill without resorting to the usual academic claptrap, Cockburn earns a Productivity awardand our heartfelt thanks.
Modern systems are inherently insecure, argues Bruce Schneier, creator of the Blowfish and Twofish encryption algorithms and author of Applied Cryptography (John Wiley & Sons, 1995). They consist of complex, sometimes capricious interconnected components that are often riddled with bugs. No longer convinced that "cryptography is the great technological equalizer," he has learned in the past decade that security is a "process, not a product." In three parts, Schneier first paints the security landscape, identifying the adversaries and their age-old attacks (embezzlement, voyeurism, fraud and so on); he then describes the technologies, from cryptography to well-built applications to protected hardware; finally, he provides an overview of available strategy, including threat modeling, product testing, countermeasures and attack trees. His writing is brisk and enjoyable; tackling the book from start to finish, as he advises (a bit preciously) in his preface, rewards the reader with an understanding of the entire security story.
Alexandra Weber Morales
Utilities and Deployment Tools
Developers may find themselves targeting numerous operating systems running on Intel-based hardware. Today, there are five flavors of 32-bit Windows available: 95, 98, NT 4, 2000 and ME. Add several foreign languages to the mix and the average developer may need to run dozens of operating systems. VMware helps tame this mess by allowing operating systems to run on virtual machines under a host operating system. Each operating system thinks it's the only one on the system, yet still has access to most system resources. Guest operating systems run in a virtual file system confined to one file on the host operating system, and changes to that file system can be kept or discarded. The file system images can be stored offline when not in use, and once restored, can be started in moments.
Since VMware isn't an operating system, it requires a host operating system to provide various disk and display services. VMware can run on two host operating systemsLinux and Windows NT/2000. The guest operating systems don't need to be Windowsmost operating systems will work, including DOS, BeOS, FreeBSD and most flavors of Linux. Dual-processor systems are fully supported.
The virtual file system sandbox model is not too limitingthe virtual operating system has access to the floppy and CD-ROM drives, as well as to any shared drives (including those on the host PC) accessible via a virtualized network adapter. VMware also comes with "canned" operating system images: Turbo Linux and SuSE Linux. To run these, just copy the image to a directory on your system and open with VMware.
If you need to develop or test on multiple operating systems and/or languages, VMware beats the alternative of a boot manager and multiple bootable partitions. VMware's ability to discard changes in a guest operating system is something that cannot be achieved at all using multiple bootable operating systems.
Altova's XML Spy represents a huge leap forward in XML IDEs, and it's one of the few do-it-all XML tools that is actually usable. At the heart of XML Spy is a validating XML editor that features several different modes in which you can edit documents, with good built-in support for the most widely used XML vocabularies. In addition to its XML editing capabilities, XML Spy also features tools such as a schema or DTD generator and conversion tool, XSL editing capabilities, database importation, and support for integration with version control systems and repositories. By uniting the fragmented world of XML into a single development environment, XML Spy has significantly increased the productivity of developers, and has made a significant contribution to the cause of making XML the language of the Web.
The exploding interest in agile development, as exemplified by Extreme Programming, relies heavily on the discipline of exhaustive unit testing. Without a bank of unit tests and automated regression testing, an initially successful XP experience can turn into a maintenance nightmare. Jtest, from ParaSoft, can be a critical link in making agile development viable in a mission-critical environment. Let's face it, QA infrastructures are typically disasters developed half-heartedly, begrudgingly, haphazardly. With Jtest in hand, the infrastructure for even the most complex Java-based systems can become not just manageable, but easy. Not only is it possible to dramatically cut QA costs, there is no better way to shorten a software project schedule than to focus on quality during code construction.
You may think that open source tools such as the XUnit family of testing frameworks make Jtest unnecessary. Not at all. While the XUnit tools automate the running of regression tests and ease the writing of tests, Jtest goes miles farthernot only does it automatically generate and run both whitebox and blackbox tests, it analyzes the .java source files for adherence to coding standards and the .class files to determine if they can possibly cause an exception. I've said it before, and I'll say it again: Jtest not only pays for itself, it's worth more than most full-time QA technicians.
CodeRover Browser can help keep your codebase's reach within your mental grasp. The Browser analyzes up to about 500,000 lines of Java or C++ into a database that helps you quickly zero in on the class, member or method of interest. Select entities with queries (Which classes implement this interface? Where is this method defined?), or use the graphical interface to browse directly. A history mechanism lets you easily back out of your explorations. CodeRover Browser integrates with a variety of editors and development environments such as Visual Studio and JBuilder, and forms the platform for UPSPRING's other analysis tools.
Design and Management Tools
The Jolt judges this year were impressed by GDPro's new and improved Java focus (which includes live round-trip engineering for Java, expanded Enterprise JavaBean (EJB) support and a JavaDoc editor), as well as support in the new release for robustness analysis and Web application stereotypes. GDPro's creator, Advanced Software Technologies, was recently acquired by Embarcadero Technologies, which makes the ER/Studio data modeling tool, so it's quite likely that database design will play a large and significant role in future releases of this product.
GDPro's EJB support implements an interface that lets you model EJBs using UML and generate an EJB-JAR file that can be deployed on different EJB servers. You can also incrementally reverse engineer EJB-JAR files containing EJBs. An EJB wizard will walk you through the steps of creating a bean, letting you specify the type (stateless session, stateful session or entity bean) and how the bean manages persistence (none, container-managed or bean-managed). The built-in JavaDoc editor makes it easier to add descriptions to Java classes, methods and members, since the editor knows the structure of predefined JavaDoc (and user-defined) tags and can enforce the tag's structure.
GDPro's support for robustness analysis is based on Doug Rosenberg and Kendall Scott's Use Case-Driven Object Modeling with UML (Addison-Wesley, 1999). Robustness analysis originated in 1991 with Ivar Jacobson, who, along with James Rumbaugh and Grady Booch, is one of Rational's famous "three amigos" methodologists responsible for UML. As Rosenberg points out in the book, robustness analysis is not part of UML proper, but is included in a set of Rational UML Objectory-specific extensions. Symbols for the three types of objects within a Robustness diagram (Boundary objects, Entity objects and Control objects) are built into GDPro's toolbars, and you have the option of creating a robustness diagram when building a new model. A final Jolt-worthy feature of GDPro is support for the Web Application Extension (WAE) stereotypes that Jim Conallen has popularized (see "Modeling Web-Tier Components," Beyond Objects, Jan. 2001). Conallen's WAE stereotypes similarly extend the basic UML notation with architectural elements (server page, client page, frameset and so forth) that make it easier to model Web-specific applications.
Together Control Center (TCC) is a full-featured, full life-cycle OO CASE tool. Together supports all UML diagrams and completely synchronizes class diagrams, EJBs and Java (or C++ and IDL) code for simultaneous round-trip engineering. Together is heavily committed to the use of patterns in design activities, and distributed/team development is supported through SCC-compliant version control systems to manage models, code or documentation. TCC supports generation and deployment of EJBs and servlets on WebLogic Server 5.1 and IBM WebSphere 3.5. Its enhanced Java compiler generates makefiles, and TCC has a new Java debugger that supports debugging applets or servlets. Together's goal is to be a one-stop shop of Java modeling and code management, and it meets it quite well.
IBM WebSphere Studio is a complete development environment for creating Java-based Web applications. Unlike many Web development environments, which tend to emphasize either the server or the client sides of development, WebSphere Studio assists developers with the entire processincluding prototyping, content development, programming, testing and site management.
By integrating all of the tools needed to develop Web applications into a single user-friendly interface, WebSphere Studio can significantly increase your team's productivity.
ESETweb applies the basic development concepts of planning, requirements, architecture, change control, implementation and maintenance to Web development, thereby minimizing the development process. The product's documentation is well organized into appealing workflow diagrams, and it contains the core workflows: create, enhance, publish and operate. When you drill down to individual activities in a workflow, you find guidelines for performing the activity, templates for project documentation and checklists that can be updated online. The administrator can edit project templates to enhance the default process, and this means new templates, guidelines, checklists and links can be added. Unfortunately, you can't easily modify the default workflows, templates or guidelines.
There are still some rough edges to work around in this first release. However, it's still an ideal product for small Web teams who want to establish a minimal process but don't have the resources to design and document the process on their own.
Libraries, Frameworks and Components
People have been attempting to simplify the task of programming almost since the beginning of computers. COBOL, as well as numerous fourth-generation languages, was developed in part to allow non-programmers the ability to create software. This concept has evolved into "visual programming," in which the user creates software simply by drawing on the screen. Visual Basic can do some of this with the visual interface, but the developer must still write code to tie it all together.
SoftWIRE, an add-in for Visual Basic, uses a visual interface to show logic, allowing users to actually create software without writing code. The interesting part is how SoftWIRE manages to accomplish this.
When you create software in Visual Basic (or most other IDEs, for that matter), windows reveal the form or dialog you're building, and additional windows display your code or project information. SoftWIRE adds a visual logic window. When you drop a SoftWIRE-enabled ActiveX control on the Visual Basic form, a corresponding control is created in the SoftWIRE window. Using a method similar to digital circuit diagrams, outputs from various controls are connected to inputs on other controls. In addition to standard window controls such as buttons, lists and text boxes, SoftWIRE provides purely logical controls such as loops, decision boxes (if statements) and "user- supplied code."
As SoftWIRE is intended as a development system for Measurement Computing's (formerly ComputerBoards) line of interface adapters, it includes controls that talk to X-10 modules, GPIB equipment (which includes most lab equipment), and digital and analog sensors. Other lab-related controls include a Fast Fourier Transform, meters, bar graphs and a strip chart. If you create your own ActiveX controls, SoftWIRE has provided the information necessary to turn your ActiveX controls into SoftWIRE controls.
While SoftWIRE doesn't totally eliminate the need to write code, it certainly does allow non-programmers to write applications without code, particularly those that process information or control lab equipment.
Borland's Delphia previous Jolt Award winnerhas long been a favorite of developers. And now Boldsoft's Bold for Delphi allows you to build model-driven Delphi applications, using either the product's built-in UML Editor, a bidirectional link to Rational Software's Rational Rose or through an XML Meta Interchange link to other major design tools. Bold for Delphi's object models can be used to drive and simplify an entire range of development processes, including database generation and the high-level management of business objects, persistence and GUI controls.
For many years, encryption and decryption software fell under the classification of weaponry, which meant that it couldn't be exported beyond U.S. boundaries. While the government has since loosened its stance, VisualSoft is based in India, well beyond the reach of U.S. government regulation.
VisualSoft Crypt is a COM component that supports five cryptography algorithmsDES (Data Encryption Standard, used by the U.S. government), triple-DES, RC4, IDEA, MIME and Blowfish. The algorithms support keys up to 2048 bits, and can encrypt/decrypt either strings or files. Sample code is provided for Active Server Pages, Visual Basic and Visual C++.
Languages and Development Environments
Borland distinguishes itself among integrated development environment (IDE) vendors not in any single achievement, but across the board. In the JBuilder box, you'll find everything you need for enterprise Java development: a Java programming toolset, a servlet-JSP server, a database and an EJB AppServer. Yes, other companies offer all those things and more in their boxes, but everything you get in JBuilder is well integratedit's not disparate technologies tied together by documentation only. And each of the components in JBuilder is solidly implemented, something you would think you could take for granted at the prices charged for Enterprise-level development tools, but which in fact is an Achilles' heel for some components in some competitive products. Finally (and this is difficult to quantify with reference to specific dialogues and menu structures), JBuilder seems to be a product built by people who actually understand how programming activities flow. Although there are complex dialogues in JBuilder, they don't often intrude into your work, and when they do, you usually face a single, comprehensive pane of logically grouped widgets. In short, JBuilder's single greatest advantage is "usability"the hot topic in this year's Jolt judging.
The EJB AppServer that ships with JBuilder 4 Enterprise Edition also deserves special attention. Borland's AppServer is not, by any means, a market leader, though that's due to an accident of timing and marketing, not a lack of technical merit. It's very difficult to reduce the comparison of EJB AppServers to a single phrasethey all have their peculiarities, strengths and weaknessesbut Borland's AppServer is definitely worth consideration for development and production deployment. Last but not least, the pure Java implementation of the JBuilder IDE allows developers to work in a familiar environment across Windows, Solaris and Linux.
Through the years, the Scotts Valley, California, company has continually demonstrated that they understand developers' wants and needs better than their competitors. JBuilder continues Borland's nearly 20-year history of offering the best IDEs in the business.
The Java application server market was once dominated by two prominent packages: IBM's WebSphere and BEA Systems' WebLogic. Today, only one 800-lb gorilla sits atop the heap: WebLogic. The reason behind this dramatic success is the extraordinary quality of the product. WebLogic is always at the vanguard of new standards. Even as new revisions of the EJB specification were being finalized, for example, BEA had implemented the new features, enabling its application server to be several releases ahead of the competition and gaining. In addition, ease of installation and use, quality of implementation, and reliability has suggested to IT sites that this product, more than any other, should be their server of choice. As developers, we enthusiastically agree.
WebGain was founded in 2000 to provide tools for Web-oriented development. The company, a joint venture of BEA Systems and Warburg Pincus, released its first major product, WebGain Studio, to kudos from most critics and users. Studio is a suite of products: Symantec's Visual Café Java development suite, Macromedia's Dreamweaver and BEA Systems' WebLogic Java application server (developer model). WebGain extended these tools and integrated them better than they would be as just stand-alone tools thrown together. Since each tool is the best of breed in its category, it's no surprise that WebGain's suite should earn a Productivity Award.
I think of Zope as a "Web-Generation Language" (a "WebGL," if you will). Just as fourth-generation languages (4GLs) allowed you to write database applications faster because they were built around database concepts and immersed you in a database-centric view of the world, Zope allows you to develop dynamic Web sites faster because it's built around Web concepts and immerses you in a Web-centric view of the world. Zope could be compared to Visual Basic, not because of any interface similarities, but because, like Visual Basic, Zope allows you to create applications faster by removing all the intermediate steps between editing code and seeing results. Also like Visual Basic, much work is done using predefined components, although extension is not just possible, but accomplished in a powerful, high-productivity languagein Zope's case, Python. Zope is a very powerful addition to your Web development tool-bench; although it takes a considerable effort to learn, the capabilities it provides allow you to chew through dynamic Web projects like a chainsaw through soggy cardboard.
What tool do 700,000 Web professionals use to speed up their productivity? Macromedia's Dreamweaver.
Dreamweaver has long been a favorite for creating Web "pages." But the recent feature list incorporated into Dreamweaver UltraDev now makes it the champion for creating Web "sites." The top features that caught my attention were:
UltraDev streamlines other tasks, as well. A new asset-management feature helps developers know the state of page and images without reference to an external source-code control tool. UltraDev generates very clean code for the top environmentsJSP, ASP and CFML. It integrates with and easily connects to all the major database and application servers. Construction of visual layout grids for complex page templates is an easy drag-and-drop activity.
UltraDev reminds me of the kind of tool a savvy Web builder would construct for personal use if only there were time in the day. But no need to waitMacromedia has done it for you.
Macromedia's Flash was one of the more controversial contenders for an award. Assaulted with pointless, bandwidth-wasting expanding circles and techno-beats, developers often fail to see the productivity enhancements that Flash can effect. However, Flash doesn't make annoying Web sitespeople do. The subtler and more important uses of Flash include improved Web user interfaces, dynamic tutorials and reference material, online games and virtual environments, and multimedia that's compatible with any Web browser (with the Flash plug-in), while featuring reasonable file download times. 2000 was the year that Macromedia's Flash 4 made scriptable vector animation on the Web a reality.
The Enterprise JavaBean (EJB) specification (http://java.sun.com/ products/ejb/docs.html) is one of our industry's most important artifacts, one that has clearly jolted software developers. First, it defines a common enterprise computing platform to which most major computing vendorsincluding IBM, Oracle, BEA, Borland and Sybaseconform, enabling developers to transfer their technical skills between vendor offerings. Second, it's the first object-oriented platform to garner widespread acceptance within the business community, a feat that both the C++ and Smalltalk platforms fell short of. Third, it's the first major platform to celebrate the use of object and relational technologies together, something that many developers have been doing for years but were ashamed to admit in public. In a few short years, EJB has become an important part of the enterprise computing landscape within most organizations, by no small means because of the public, multi-vendor effort behind the development of the EJB specification. EJB is here to stay.
Scott W. Ambler
Sybase's SQL Anywhere Studio proves wrong the common perception that a true SQL database engine is a mammoth product. SQL Anywhere is a small-footprint DBMS that was designed from the ground up to provide top-end functionality. Like its bigger brethren, it runs on numerous platforms, but unlike them, it has special provisions for wireless and Web access. Like its rivals, it supports multiprocessing and can interact with most any application through ODBC and JDBC. But unlike them, it also provides a C++ interface and a method for running Java code on the database server itself. Small, flexible, reliable, and with big-time features, this is what databases should have been all along.
Hall of Fame
Software developers live or die by their tools, and a good editor is at the core of anyone's toolkit: a tool that developers use day in and day out. Luckily, Visual SlickEdit is a great editor, one that's used by hundreds of thousands of developers worldwide. A consistent Jolt Productivity Award winner (1993, 1996, 1997 and 1999) Visual SlickEdit has been a solid tool for years, one that has evolved with each release to meet the complex needs of modern developers.
Scott W. Ambler
|Subscribing to Web Services
In his keynote address at the Software Development conference in San Jose, California, Grady Booch, chief scientist for Rational Software, described how the World Wide Web can function as a "collaborative development environment," enabling seamless communication and frictionless resource-sharing for geographically dispersed teams. "A number of factors have come together that make it viable to do development by the Webusing the Web as the platform for the virtual project space," said Booch, whose company, like Borland, Merant, Compuware and, of course, Microsoft, has invested in creating hosted development services and tools.
Adaptive Software Development
Don't Make Me Think! A Common Sense Approach to Web Usability
Secrets and Lies
Writing Effective Use Cases
VMware for Linux/Windows
Together Control Center
Bold for Delphi
SQL Anywhere Studio
EJB Specification 2.X
WebLogic EJB Server