by Peter H. Salus
Peter H. Salus is a member of the ACM, the Early English Text Society, and the Trollope Society, and is a life member of the American Oriental Society. He is Editorial Director at Matrix.Net. He owns neither a dog nor a cat.
BOOKS REVIEWED IN THIS COLUMN
TRUST AND RISK IN INTERNET COMMERCE
EFFECTIVE TCP/IP PROGRAMMING
ESSENTIALS OF THE JAVA PROGRAMMING LANGUAGE
JAVA SERVER & SERVLETS
THE HUMANE INTERFACE: NEW DIRECTIONS FOR DESIGNING INTERACTIVE SYSTEMS
Every time I open a newspaper or click on the TV, some pundit is telling me about eBusiness or eCommerce and its importance. Most of what I read and hear is absolutely worthless. (This may indeed be true of most of what the media purvey, but I just don't know enough about most things to be able to tell. Unfortunately, my guess is that the pundits know far less than a random cabbie in a European or North American city.)
To be frank, I've only got a half-dozen keepers on electronic commerce over the past few years.
So it's really nice to get another.
L. Jean Camp's view of commerce in general is that every transaction involves assumptions of trust and risk. These, in turn, relate to security, privacy, and reliability. Years ago, I would tear up the carbons of my charge slips, so that phony cards couldn't be created from them and the imprint of my signature. Card companies' elimination of those carbons made me feel better about my security and my privacy.
In any Internet transaction, the questions of who trusts whom and what the risks are arise. Who pays when trust is misplaced (both in terms of hard cash virtual cash? and in terms of data)? When there are failures, who is at risk? When a third party is involved, who is liable?
Lots of questions. Jean Camp may not have all the answers, but what she's done is extremely valuable in terms of putting the questions and in delivering a jargon-free presentation of the issues.
I use eCommerce a lot: I buy things, I sell my writings, and I deliver "product" via the Internet. As time goes on, more and more of us will transact more and more business via the Internet. This book does a fine job in presenting the risks and also the security features that go to ensure our trust.
By and large, I admit to relying on the (many) tomes of Doug Comer and of the late Rich Stevens when it comes to understanding TCP/IP. So I'm generally wary when yet another book on TCP/IP thuds onto my desk.
But Snader's little book is good and useful.
He used Stevens's groff macros, so the look-and-feel is a familiar one. There are a lot of good tips and some neat code, but the last four "tips" may easily be the most important ones:
So, if you do networking, buy Snader, too.
Where IPv6 is concerned, there are now seven volumes of RFCs edited by Pete Loshin. In June, I mentioned this "Big Book . . ." series. Once again, my compliments to him and to Morgan Kaufmann for these.
Too Much Java Keeps You Awake
It's nearly four years since I first complained about the number of Java books I had received. Well, I need to admit that there are a few new ones that I found worthwhile.
Monica Pawlan's volume is perfect for someone who's had a first course in programming a real beginner may have some difficulties. But Pawlan has done a fine job with her explanations, and many chapters end with sections on "further information." There is a brief but good bibliography.
Rossbach and Schreiber came out last year in German; no translator is noted, but whoever did it deserves a pat on the back. If you want to build portable Web apps, you'll want this. The bibliography is thorough, but Rich Stevens is under "R," not "S."
JavaServer Pages is a new technology that is intended to facilitate page development. JSP is included in Sun's Java 2 Enterprise Edition. The book seems good, though the compulsory history sections (pp. 26) are fairly vapid. The brief chapter summaries are quite handy.
A while back I complained that there was no book on grep. Several readers pointed out that Friedl & Oram, Mastering Regular Expressions (O'Reilly, 1997) has a lot on both grep and egrep. That's true, and Friedl and Oram have a fine book but it goes into Perl, Python, Emacs, etc., as well as grep.
Second, I wrote that Ted Dolotta created the -mm macros. Ted wrote me:
What you say there is not quite correct: it is true that I decided to have the -mm package written (there was some feeling at the time that Mike Lesk's -me macros could be improved/enlarged upon). But most of the design and implementation was done by John Mashey and Dale Smith. I provided the overall management, critiqued the design and the documentation (surprise!), and served as alpha tester. I also designed and implemented the whole footnote mechanism a very complicated piece of troff code which was subsequently broken and never repaired when someone (who did not understand it) tried to add a feature to automatically print legal notices at the bottom of every page below the footnotes; turnover footnotes have never worked since.I do try to get things right . . .
Reviewed by Steve Johnson
Jef Raskin is best known as the designer of the Macintosh interface. In The Humane Interface, he has written a very entertaining and, in the best sense, radical book about how we deal with computers and applications.
Probably half the book is spent putting together a model that describes how people interact with programs. Fairly high-level concepts ("you can only focus on one thing at a time") were mixed artfully with much more mundane ideas (such as a model that estimates how long the average user will take to, for example, click in a dialog box and type 10 characters of text). I found myself saying "of course" over and over again, as he pointed out obvious things that I'd just never brought into consciousness.
As one example, Fitt's law predicts how long it will take to move the cursor and click a button, based on the size of the button and how far you need to move the cursor. Halving the dimensions of a button can add nearly 150 msec. to the time it takes to press it (and this doesn't count the increased error rate). I recently "upgraded" a program I use frequently, and found the upgrade significantly harder to use. After reading this book, I now see that the buttons' being smaller is a lot of the reason.
He also has a discussion of information theory, and the uses and abuses of it in interface design. His goal for an interface is that it become monotonous like a perfect waiter, it serves you without calling attention to itself. He loathes error boxes where the only thing you can do is say "OK." His critiques of the Windows interface are bullseye accurate it becomes hard to use any Windows application after reading this book, because you keep being aware of how much harder you are working than you need to.
Finally, he discusses a number of radical ideas for interfaces. One is based on a two-dimensional infinite field where data can be piled, and you can zoom in and out to find the information you need. Another is a truly radical notion of eliminating file names from the user interface. As a long-time UNIX user, this idea almost sent me into shock, but it's good to have your world view upset every couple of decades!
Finally, the book is very engaging to read. It is well laid out, written in a light, somewhat ironic style, and peppered with amusing quotes. It would be an excellent read for anyone involved in generating user interfaces (and who isn't?).