A Double Eclipse
By now, it's obvious that user interfaces are not open-source software's strong point. Linux desktop environments such as Gnome and KDE, for example, seem clunky when compared to modern versions of Windows or Apple's latest offerings, and open-source's IDEs have always lagged behind their closest commercial counterparts.
Luckily, this is changing. Over the last four years, IBM has built a first-class open- source IDE in Java called "Eclipse," and a large development community has grown up around it to fix bugs, add features, and build new plug-ins. More importantly, tens of thousands of developers are now using them to build real applications.
The best thing about Eclipse is its rich feature set; unfortunately, this is also the worst thing about it. With every major and minor release, boatloads of new tools and functionality creep in like illegal immigrants'rarely documented, often well-hidden, and of course, loaded with potential. Fortunately for users, many of these shady productivity boosters have now been rounded up and exposed in Eclipse in Action, by David Gallardo, Ed Burnette, and Robert McGovern; and The Java Developer's Guide to Eclipse, by Sherry Shavor, Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, and Pat McCarthy.
Both of these books target developers who already know how to program in Java. Their aim is to show you how to use Eclipse to make development easier. In Part One, they begin by describing what Eclipse can do, and in particular, how it can make coding, refactoring, debugging, and working with a team easier to manage. Part Two of each book explains how you can add new functionality to Eclipse by writing new plug-ins. The Java Developer's Guide to Eclipse also has a third part that presents a series of exercises (with solutions) that cover the basics, including project creation and debugging, as well as more advanced topics like plug-in development and deployment.
The best aspect of both books is feature coverage. I've used virtually every release of Eclipse since 1999, yet I found myself learning new things from both books. The practical, in-depth examples are also welcome. Both new and experienced programmers will appreciate the chapters about CVS, Ant, and JUnit offered by Eclipse in Action. These tools are tightly integrated into the Eclipse SDK but are often easy to miss, especially for people who have had no exposure to them before.
Similarly, if you have a background in OO software architecture, you will enjoy Part Two of The Java Developer's Guide to Eclipse. This section thoroughly describes some of the different design patterns present in Eclipse's internals. In particular, there is a step-by-step guide to writing a smart syntax-highlighting SQL query editor plug-in, complete with class relationship diagrams and source code.
Another strength is that full example code is available for both books: The code listings in Eclipse in Action can be downloaded from the publisher's web site, while the examples and exercises in The Java Developer's Guide to Eclipse is provided with the book on a CD. One note: Although the CD says you need Windows, you really don't since the documentation is stored in HTML. The only thing that is Windows specific is the Eclipse SDK package; you can get versions for the other platforms from the main Eclipse site at http://www.eclipse.org/.
One last bonus with Eclipse in Action is its appendices, which are full of useful tidbits. Appendix A describes what each menu item does in the Java perspective. Appendix B walks you through the installation of CVS on Windows, Linux, UNIX, and OS X. Appendices D and E introduce Eclipse's UI framework, which is useful if you plan on writing your own plug-ins, and so on.
Of course, both books have their weaknesses. Part One of The Java Developer's Guide to Eclipse reads like a textbook. The authors describe sequences of tasks and operations using dense paragraphs rather than easy-to-follow point-form lists. Parts Two and Three of this book are easier to digest.
Another weakness in both books is screenshots. Eclipse runs on at least eight different platforms including QNX, AIX, and HP-UX, yet both books make it seem like Eclipse only runs on Windows. For example, after describing that Eclipse runs on a variety of different operating systems, The Java Developer's Guide to Eclipse states that you should get "the appropriate Windows Eclipse SDK download for your system," which isn't of much use if you're running Linux and GTK.
Another example is that only Windows shortcuts are mentioned in The Java Developers Guide to Eclipse; Eclipse in Action doesn't mention shortcuts at all. It would've been nice if the authors could mention something about what the key mappings are on other platforms such as Solaris and OS X.
Eclipse in Action: A Guide for the Java Developer
David Gallardo, Ed Burnette, and Robert McGovern
Manning, 2003
380 pp., $44.95
ISBN 1930110960
The Java Developer's Guide to Eclipse
Sherry Shavor, Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, and Pat McCarthy
Addison-Wesley, 2003
896 pp., $49.99
ISBN 0321159640
Linux, UNIX, Mainframes, and Security
review by Jack Woehr
It is possible in enterprise circumstances to have your UNIX in so specific an environment that no collection of general texts is likely to provide the quick guidance you need. Linux on the Mainframe, by John Eilert, Maria Eisenhaendler, Dorothea Matthaeus, and Ingolf Salm, is a specific text for one such specific environment--Linux running under IBM z/VM, the virtual machine mainframe operating system. Multiple multiuser Linux images can be instanced on one machine under z/VM to create a server farm environment like unto no other. (Yes, I'm glossing over LPAR. Don't worry, the book doesn't gloss it over.) The four IBM'er authors of Linux on the Mainframe focus on the unique features and problems of this sort of Linuxing.
Although they review the history and structure of Linux, fortunately the authors of this book don't attempt to teach everything. They assume you know quite a bit about both UNIX and mainframes, then limit their brief to describing how the two interact. Ever wondered what percentage of code was added to the GNU tree by the IBM port of gcc and all the tools beyond and between to port Linux? Or how to provide centralized authentication for all your virtual Linux machines from a z/OS--IBM's mainframe server operating system that can run under z/VM--LDAP server? How to use virtual channel-to-channel connectors from Linux? Or how to maximize that limited CTCC resource by hooking your virtual Linux machines to a virtual LAN? The book authoritatively covers these and scores of other topics that have caused administrators to post in anguish to the mailing lists in the four years since the 390 port hit the ground running.
Linux on the Mainframe is prettier than an IBM Redbook, it's timely, and all the authors have (or had) close involvement in the Linux/390 project. It's aimed at administrators, or perhaps more precisely, coders or team leads who must consider adminstrative issues, and at their immediate decision maker. A certain percentage of this typical IBM-er book is (surprise!) marketing noise. But the signal-to-noise ratio is high: If you need some reliable yet compact Linux-on-the-mainframe information and don't care to wade through all the documentation and Redbooks merely in pursuit of an overview and some detailed general guidance, then Linux on the Mainframe is for you.
Practical UNIX & Internet Security, Third Edition, by Simson Garfinkel, Gene Spafford, and Alan Schwartz, is a classic which, like the proverbial farmer, is outstanding in its field. Now in its third edition, this book was originally written in 1991 at which time, say the authors, "... many people thought that the words 'Unix security' were an oxymoron like 'jumbo shrimp or 'Congressional action'...." Well, those halcyon days are gone for good, Practical UNIX & Internet Security remains the one-volume complete introduction to the basic issues of UNIX security. Covering pretty much everything takes up almost 1000 pages. The rest of mastering UNIX security is practice, experience, and plenty of reading-the-manual for your particular system, as the authors never tire of reminding you.
Practical UNIX & Internet Security, while profoundly technical and highly detailed, nonetheless possesses a viewpoint elevated well above the technical horizon. There's a whole chapter on personnel security, since, after all, it is neglected wetware that causes all the problems, right? And the authors of this engagingly written, but rather ponderous tome, never forget to provide the periodic rest-and-stretch in the form of sidebars which amuse you by elucidating tangentially such diverse subjects as the origin of the term "baud" and the microwave transmitter at the University of California at Berkeley which was continually being smashed by vandals until a very low-tech solution was discovered.
If you're in charge of security for any online UNIX system or systems, go to http://www.oreilly.com/catalog/puis3/index.html and read the table of contents. You'll probably discover you could benefit from reading this uniquely useful and comprehensive volume that only improves with age.
W. Richard Stevens (1951-1999) may be gone, but his work lives on, especially his classic UNIX Network Programming. After you have learned the basics of TCP/IP and desire to actually do any TCP/IP programming, such as every beginner's sample telnet client, UNIX Network Programming Volume 1 is the first and only book you need turn to. (Volume 2 deals with interprocess communication, and is equally valuable in its own right.)
The first two editions, prepared totally by Stevens, were subtitled "Sockets and XTI". The second edition added IPv6 information, that protocol then being yet "under construction". Now in its third edition, the book has been updated by supplemental authors to cover real-world IPv6, IPSEC and SCTP. The source code has also now been tested on a variety of newer platforms, such Red Hat Linux 9, Solaris 9 and Mac OS X. The discussion of XTI (X/Open Transport Interface) has been dropped since nearly everyone has forgotten the latter, if indeed they ever knew it existed in the first place.
Compendious, accurate, insightful and authoritative to the measure of the obsessive genius of one of the Golden Age of Programming's greatest programmer-guru-authors, now diligently redacted and supplemented by studious disciples, UNIX Network Programming never stops giving. You'll have this unique and irreplaceable book on your shelf until the next edition or until TCP/IP itself ceases to have meaning.
Linux on the Mainframe
John Eilert, Maria Eisenhaendler, Dorothea Matthaeus, and Ingolf Salm
Prentice Hall PTR, 2003
464 pp., $49.99
ISBN 0131014153
Practical UNIX & Internet Security, Third Edition
Simson Garfinkel, Gene Spafford, and Alan Schwartz
O'Reilly & Associates, 2003
984 pp., $54.95
ISBN 0596003234
UNIX Network Programming, Volume 1: The Sockets Networking API, Third Edition
W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff
Addison-Wesley, 2004
1024 pp., $69.99
ISBN 0131411551
Ed Nisley suggests...
GUI Bloopers (Academic Press, 2000; ISBN 1-55860-582-7), by Jeff Johnson, has a relevant chapter on user-interface responsiveness. Even if you're not doing real-time system design, his guidelines will improve your programming.
If you can finish Galileo's Daughter without a tear in your eye and a catch in your breath, you need an empathy tuneup. It's by Dava Sobel (Walker & Co., ISBN 0-8027-1343-2) and worth every penny. Read it and weep. The Galileo Project at http://es.rice.edu/ES/humsoc/Galileo/ includes the full text of his daughter's letters. In view of his reputation with the Vatican, Sister Maria Celeste's convent destroyed his letters after her death.
GUI Bloopers: Don'ts and Do's for Software Developers and Web Designers
Jeff Johnson
Academic Press, 2000
584 pp., $47.95
ISBN 1558605827
Galileo's Daughter: A Historical Memoir of Science, Faith, and Love
Dava Sobel
Penguin USA, 2000
420 pp., $20.40
ISBN 0802713432
Ed is an EE, PE, and author in Poughkeepsie, New York, as well as a contributing editor to DDJ. You can contact him at [email protected] with "Dr Dobbs" in the subject to avoid spam filters.
And Jerry Pournelle Recommends...
The book of the month is Neal Stephenson's Quicksilver, an enormous 900-page novel that tells the story of the ancestor of the fictitious hero of Cryptonomicon. It's set in Restoration England, Counter-Reformation Europe just after the 30 years war, and the Americas in the time of the Salem Witch trials. You get the London Plague and Fire, Leibnitz versus Newton on the invention of calculus, the founding of the Royal Society, the second Siege of Vienna, and a partridge in a pear tree. It will take you a while to read it, and you'll love every minute.
The second book of the month is Paul Johnson's ART: A New History, and that will take you another two months to read. You'll be a better person for having done so. It's also very readable.
The computer book of the month is Michael Howard and David LeBlanc's Writing Secure Code that carries a cover blurb from Bill Gates: "Required reading at Microsoft." It discusses both philosophy and techniques, it's huge, it is not light reading, and I highly recommend it for anyone who has to deal with IT matters.
Quicksilver
Neal Stephenson
William Morrow,2003
944 pp., $27.95
ISBN 0380977427
ART: A New History
Paul Johnson
HarperCollins, 2003
792 pp., $39.95
ISBN 0060530758
Writing Secure Code
Michael Howard and David LeBlanc
Microsoft Press; 2nd Book and CD-ROM edition, 2002
650 pp., $49.00
ISBN 0735617228
Jerry is a science-fiction writer, senior contributing editor to BYTE.com, and columnist for Dr. Dobb's Journal. You can contact him at [email protected].
Recent Releases
Dr Ecco's Cyberpuzzles: 36 Puzzles for Hackers and Other Mathematical Detectives
Dennis E. Shasha
Norton, 2004
256 pp., $14.95 (paper)
ISBN 0393325415
Fan's of DDJ's popular (but, sadly, defunct) "Omniheurist Corner" column by Dennis E. Shasha will be glad to note that Dr. Ecco's Cyberpuzzles is now available in paperback.
Perl Template Toolkit
Darren Chamberlain, David Cross, and Andy Wardley
O'Reilly & Associates, 2003
574 pp., $39.95
ISBN 0596004761
Among the many approaches to "templating" with Perl--such as Embperl, Mason, HTML::Template, and hundreds of other lesser known systems--the Template Toolkit is widely recognized as one of the most versatile. Like other templating systems, the Template Toolkit lets you embed Perl code and custom macros into HTML documents in order to create customized documents on the fly. But unlike the others, the Template Toolkit can produce PDF, XML, or any other output format as easily as it produces HTML. And because it has its own simple templating language, templates can be written and edited by people who don't know Perl. In short, the Template Toolkit combines the best features of its competitors with ease-of-use and flexibility, resulting in a technology that's fast, powerful and extensible, and ideally suited to the production and maintenance of web content and other dynamic document systems. Perl Template Toolkit by Darren Chamberlain, David Cross, and Andy Wardley provides detailed coverage of this technology. In Perl Template Toolkit you learn how to build web sites and other dynamic document systems in such a way that they can be updated, modified, and re-branded quickly and easily.
Contributing to Eclipse: Principles, Patterns, and Plug-Ins
Erich Gamma and Kent Beck
Addison Wesley Professional, 2003
416 pp., $39.99
ISBN 0321205758
Written by Erich Gamma and Kent Beck, Contributing to Eclipse: Principles, Patterns, and Plug-Ins explains how to extend Eclipse for software projects and how to use Eclipse to create software tools that improve development time. This tutorial on creating custom tools also provides an explanation of highly effective software design philosophy. The authors revive the lost art of supporting existing work by building tools. This book improves thesoftware developer's skill set building little tools, and gradually growing those tools into superior quality products to helps a community of developers.
High Score! The Illustrated History of Electronic Games, Second Edition
Rusel DeMaria and Johnny Wilson
Osborne/McGraw-Hill, 2004
400 pp., $24.99
ISBN 0072231726
According to Fortune magazine, Americans will spend more time playing video games this year than watching rented videos and DVDs. What started in 1958 with "Tennis for Two," the earliest known electronic game using an oscilloscope, an analog computer and push buttons, has evolved into high-tech games such as Madden NFL Football and elaborate multiplayers games such as EverQuest. This steady rise in popularity of electronic games and its rich history is chronicled in High Score! The Illustrated History of Electronic Games, Second Edition ,by Rusel DeMaria and Johnny Wilson. This illustrated full-color retrospective includes hundreds of images of arcades, consoles, and PC games that span decades of game history, as well as photos of visionaries and creators of the games. The book starts with a short tour of the prehistory of games, including homage to early pinball machines, and the key technological breakthroughs that made electronic gaming possible. The authors profile the earliest pioneers before delving into the 1970s, which set the stage technologically for the birth of the gaming industry. The developments of the 1980s are analyzed in detail along with Atari, Intellivision, and ColecoVision gaming systems. In the 1990s, CD-ROM, 3D graphics, and high-speed Internet access radically changed the face of electronic gaming. The authors examine the rivalries that radically created rapidly escalating technologies, realism, and a wide range of crossovers and tie-ins.
Apple Confidential 2.0: The Definitive History of the World's Most Colorful Company
Owen W. Linzmayer
No Starch Press, 2004
344 pp., $19.95
ISBN 1593270100
With iTunes, iPods, and designer iMacs, Apple Computer is once again revolutionizing the way we live with technology. To bring us all up to date with what's new with Apple, No Starch Press is releasing the second edition of journalist Owen W. Linzmayer's best-selling book. Apple Confidential 2.0 covers everything of note in Apple's fascinating history, from its legendary founding in a garage to today's groundbreaking innovations. With over 60 pages of new material, including several completely new or greatly revised chapters, and hundreds of new photos, illustrations, quotes, and timelines, Apple Confidential 2.0 is required reading for Macintosh fanatics and anyone interested in the business of Apple.
Security Warrior
Cyrus Peikari and Anton Chuvakin
O'Reilly & Associates, 2004
531 pp., $44.95
ISBN 0596005458
When it comes to network security, many users and administrators are running scared, and justifiably so. The sophistication of attacks against computer systems increases with each new Internet worm. What's the worst an attacker can do to you? You'd better find out, right? That's what Security Warrior teaches you. Based on the principle that the only way to defend yourself is to understand your attacker in depth, Security Warrior reveals how your systems can be attacked. Covering everything from reverse engineering to SQL attacks, and including topics like social engineering, antiforensics, and common attacks against UNIX and Windows systems, this book teaches you to know your enemy and how to be prepared to do battle.
Hardware Hacking Projects for Geeks
Scott Fullam
O'Reilly & Associates, 2004
331 pp., $29.95
ISBN 0596003148
Hardware Hacking Projects for Geeks by Scott Fullam covers topics ranging from how to hack a toaster to building cubicle intrusion detection Systems. The book offers an array of inventive, customized electronics projects for the geek who can't help looking at a gadget and wondering how it might be "upgraded." An inveterate hardware hacker since the age of ten when he unpacked his first Radio Shack 100-in-1 Electronics Set, author Scott Fullam hopes that his book will get others as excited about hardware hacking as he is. "I love to take things apart to see what makes them work. I also love to repurpose equipment for my own use," he says. Projects range from those that are truly useful to some things you may have never thought to do, but which are really cool, such as: building your own arcade game; making radio-controlled cars play laser tag; building an automobile periscope; creating a remote object tracker; hacking an 802.11b antenna; or building a building-size display
Exploiting Software
Greg Hoglund and Gary McGraw
Addison-Wesley, 2004
512 pp., $49.99
ISBN 0201786958
How does software break? How do attackers make software break on purpose? Why are firewalls, intrusion detection systems, and antivirus software not keeping out the bad guys? What tools can be used to break software? This book provides the answers. Exploiting Software is loaded with examples of real attacks, attack patterns, tools, and techniques used by bad guys to break software. If you want to protect your software from attack, you must first learn how real attacks are really carried out; and this book is filled with the tools, concepts, and knowledge necessary to break software.
Contact Us
To contact Dr. Dobb's Programmer's Bookshelf Newsletter, send e-mail to Deirdre Blake, DDJ Managing Editor, at [email protected].