Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Java Development with Ant
Publisher: Manning Publications
Authors: Steve Loughran
Rating: 4/5
Customer opinion - 4 stars out of 5
Good Coverage, Organization could be better

First of all, everything you want to know about Ant is in here. I give the book high marks for accuracy and content. The only issue I did have was with the way the topics are presented. Rather then getting the feeling a foundation was being set and we gradually built upon that foundation, I felt a little befuddled and thrown about. Exposure to topics did not seem to follow an optimum order and I felt the book seemed to jump around. Advice for proper usage, details, and nuances are all here however and perhaps you will not have the same problems I did as most people like this book.

Product: Book - Paperback
Title: Swing, Second Edition
Publisher: Manning Publications
Authors: Matthew Robinson, Pavel Vorobiev
Rating: 5/5
Customer opinion - 5 stars out of 5
Highly recommended

Has an exceedingly high "density" of valuable information. Very up-to-date as of Java 1.4. Started helping me in my day-to-day professional Swing programming from Day One...

Product: Book - Paperback
Title: Malicious Cryptography: Exposing Cryptovirology
Publisher: Wiley
Authors: Adam Young, Moti Yung
Rating: 5/5
Customer opinion - 5 stars out of 5
Heaven's dark side

This book presents an initial, interesting idea - could a computer virus be written that attacks a computer by encrypting the user's data? This could be a tool for extortion or a unique Denial of Service attack. Now this is not a new idea (eg: the KOH virus) but there is a new twist - the data is encoded with an asymmetric cipher, thus rendering it unrecoverable except to the virus writer. The authors state that such a virus has indeed been trialled in a proof-of-concept form, on a Macintosh SE30 (a nice machine to develop on, from memory) in System 6, so there's no "whoops, where's it gone?" problem. There is some detailed high level discussion of techniques and pitfalls. The authors then go on to describe how contemporary cryptographic technology may be adapted to the theft of information such as secure data and passwords. This is all done at the level of mathematical relationships - there is no viral code.

Two new words are added to the language - cryptovirology (the study of computer viruses with a cryptographic payload, usually malicious) and kleptography (the application of cryptography to data theft).

Here are a few chapter or section headings to give a taste of the themes running through this work: Through Hackers's Eyes; Cryptovirology; Deniable Password Snatching; Using Viruses to Steal Information; Computationally Secure Information Stealing; The Nature of Trojan Horses; Subliminal Channels.

The book starts with an accessible piece of fiction, but quickly progresses to the opaque style common to much academic writing in this field. The reader is well advised to brush up on matrix algebra, Jacobians and Abelian and non-Abelian groups and to have a working knowledge of computer viruses (however obtained). There are appendices intended to provide brief tutorials on computer viruses and public key cryptography. But both these very different specialised fields require far more study than any précis can provide.

While the writing is often hard going there is an enjoyable first chapter describing three incidents in the life of a virus writer (a student at a US university) as he writes and releases a virus. It provides a vicarious experience of the motivation for such activity - the mental challenge, the adrenalin rush and the exercise of secret power.

The writing, as referred to above, is uneven and there seems to be some confusion as to who the audience is for this work. Some seems to have come from one of the authors' doctoral thesis - you have been warned! It's an academic work, so academic cryptographers would be the principal readers. But since it's offered for sale to the public, one wonders who else would read it? We can rule out some groups. If you refer to yourself as "133t", then you can count yourself out, as can those wannabees who capture virus code, do a partial rewrite, add their handle, then release their "new" version. There is no rip-off virus code here. Even whoever wrote Nimda or Code Red or NetSky will find this heavy going, competent thought they are in the mysteries of mobile code and system calls. Certainly anti-virus software coders will find this of little use. If I can let my imagination run free, perhaps also the legendary Hidden Masters of cyberspace, those hackers beyond "elite" in their esoteric knowledge, who work alone, do not meet other hackers except deep behind some firewall and who are never suspected, let alone arrested, perhaps they will be inspired to even greater feats of data theft. But then we'd never know, would we?

Product: Book - Paperback
Title: User Interface Design for Programmers
Publisher: Apress
Authors: Joel Spolsky
Rating: 1/5
Customer opinion - 1 stars out of 5
Not worth it...

Before even starting I have to say that I work in the field of Quality Assurance so I have read a lot of material on this subject, thus my standards are pretty high for this type of book. However, I also work in the programming field as well so I feel justified in my comments. As such, I think this is a book that will only please the programmer who likes to do minimal research and/or feels they do not have the time to devote to a better treatment of this subject.
First of all, you can get the majority of the book online at the author's Web site. I highly recommend checking that out before you plunk down the cash for this book. Second, all this author did was take a smattering of ideas that have been promulgated in other books and on the Web and distilled it down to a few simple particulars per chapter. (You can find a lot of his thoughts echoed from the UseIt Web site by Jakob Nielsen as well as the Interface Hall of Shame. He also takes some ideas directly from Donald Norman's "The Design of Everyday Things." Finally, a lot of this can be found on the AskTog Web site.) You might think that would be a good thing. Perhaps in some ways it would. The problem is that only a smattering of that information is culled and thus a lot of the meat is missing.
The author also makes some statements throughout the book that contradict or are not provided with good reference information so as to determine validity. Example:
"In fact, users don't read anything."
In the very next sentence, however, he says that "when you do usability tests, ... there are quite a few users who simply do not read words." So now it is not all users (as the first statement implies), just a few. The bigger complaint within this, however, is that the author does not state what these "usability tests" are. He also does not cite any major usability studies at all. In fact, those who have studied usability realize that the above statement about "users don't read anything" applies to a certain subset of users in a certain subset of usability tests. You would not know that from reading this book.
The accessibility coverage is also very poor. Accessibility interfaces are now law in the United States (since the start of 2001) and yet this very important topic is given short shrift. Also, the author does not make clear one of the biggest topics for usability and accessibility design: the distinction between programs between intuitive and intuitable. Finally, the author rarely provides the basis for the facts he states. It is fine to talk about "affordances" and "metaphors" but if you do not explain the rationale behind such things (or what studies indicate that these things work), you are doing your readers a disservice.
I much more recommend a book like "GUI Bloopers" for those who want a good read by an informted individual on this subject who is not just copying others. For those programmers who really want to learn about usability and the principles behind it, I recommend "Software for Use" or the "Usability Engineering Lifecycle." (Please note: those last two books are more geared to a Quality Assurance role, but are probably some of the most informative out there.) I would also more recommend the books by Alan Cooper (which are more theoretical but also more applicable in some cases).
Overall, I think this book was written for the programmer who does not have a lot of time to get through a larger book. Perhaps that makes sense to some. For me, it does not. Usability and accessibility are very important in the modern world, particularly in relation to the Web or with Web-based applications where the user is much more likely to give up on a piece of software than they would be if they just spent money on a software package. Thus, this is not a subject that you should expect to understand in this small montage of information.
I recommend reading the book at his Web site to determine if you want to buy the full book. If you do use this as a starter book (basically usability-with-training-wheels) then I urge you to consider other books on the same subject (some of which I have mentioned in this review) to get more informed on the subject. I also recommend checking out some of the online material that is quite abundant and where it seems most of this author's work derived from.