Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Java Books Media Programming Book Reviews

Wicked Cool Java 108

Simon P. Chappell writes "Every now and then, as a book reviewer, you just have to take a chance. The way it works is that editors ply their wares to you, sending you lists of available books on a regular basis and tempting titles catch your eye. The problem is that until you've committed to review the book, received it and read it, you don't know whether you've found a good one or have just been a victim of drive-by marketing. This was such a book. The title sounded good and I just had to try it out. But would it live up to the name that it bore?" Read the rest of Simon's review.
Wicked Cool Java
author Brian D. Eubanks
pages 224 (12 page index)
publisher No Starch Press
rating 8/10
reviewer Simon P. Chappell
ISBN 1593270615
summary Programmers and technical leads will love this book.

Most of the books that I review are targeted for programmers and this is no exception to that rule. If you code Java for fun or profit, then this book is for you. That said, as one whose day job is a technical lead for Java development, I actually appreciated the book more than I expected. For a technical lead, just knowing that something is possible and seeing clear examples of how to do it, is a huge relief. When you're the guy who has to lead the efforts to fulfill I.S. management's promises, it's good to know that your team can do some of the things they said we could, using language features in conjunction with available open-source and free libraries.

The back cover calls it an "idea sourcebook" and I'm going to concur with that description. It contains a very wide range of subject matter and so each chapter addresses a portion of that spectrum. The first three chapters cover core Java skills and will be applicable to every reader of the book. The balance of the chapters are more discretionary and will appeal to different readers to differing levels. Each of the chapters brings about a dozen thoughts or tools concerning the subject area to the reader. Most of these tools are explained and short code samples are given for their use.

The first chapter covers the Java language and some of the core APIs. It looks at a few of the forgotten gems of the Java language while mostly looking at some of the fancy new features of Java 5. Chapter two addresses String utilities, primarily through the regular expression capabilities introduced in Java 1.4. String handling is a first order skill, even in these days of objects, so this chapter is very welcome. Chapter three looks at processing XML. Like string handling, XML processing is becoming a first order skill, that even if you don't like (and I don't), it is still important to be able to handle the vast quantity of the stuff that we are surrounded with.

Chapter four looks at the semantic web. This is a world that speaks RDF, RSS and Dublin Core. If you already speak that dialect of geek, this is your chapter. The fifth chapter examines scientific and mathematical applications; calculation engines, arbitrary-precision arithmetic and neural network drivers. Chapter 6 brings us graphics and data visualization; graphing and report generation are the order of the day here. Chapter seven looks at multimedia and synchronization. This is the chapter for learning to make music, having your computer talk back to you and having more fun with threads than you ever thought possible. The last chapter, number eight, is titled "Fun, Integration and Project Ideas". It's a veritable grab bag of ideas, ranging from using Java to control a LEGO robot to writing in JVM Assembly Language.

While I don't wish to steal any thunder from the book, perhaps an example or two would be appropriate at this point? The JScience API is discussed in chapter five and it's unit framework is explored from pages 109 to 111. Calculations with values of differing units can be problematic; just ask any NASA engineer. The JScience framework allows you to work in the appropriate units for a value and have all calculations with those units convert themselves correctly. There are many practical uses for this, but I enjoyed the furlongs per fortnight example that the book provides: did you know that the speed of light in a vacuum is 1,802,617,499,785.253 furlongs per fortnight? In chapter two there is a great example of generating random text. This can be useful for suggesting pronounceable passwords and just such an example is given on pages 34 to 36.

If you have the desire to explore some of the uncharted waters of the Java world, then there's a good chance that you'll like this book. If you are the kind of person who loves to hear about new and interesting things that you can do with Java and are happy to have them served up in a book where they're categorized and presented with code examples, you'll love this book. As I mentioned earlier, this book is also useful for those leading teams of Java programmers; where knowing that something is doable is of great value in and of itself.

If you are one of the large number of Java programmers still working at the 1.4.x level, or who needs to target 1.4.x JVMs, the first chapter will be the least useful of the whole book, with the majority of it's examples based on Java 1.5. If you are not really much of a one for interesting Java coding suggestions, with examples, then perhaps this is not the book that you thought you were looking for.

The book has a website, the cunningly named wickedcooljava.com that provides links to all of the libraries and code projects mentioned in the book.

This is a great book. I loved it, but then I fall into the realm of the perpetually curious and I love to explore new and interesting things to use Java for."

You can purchase Wicked Cool Java from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

Wicked Cool Java

Comments Filter:
  • by $1uck ( 710826 ) on Wednesday January 25, 2006 @02:28PM (#14560209)
    Was I just biased against the book originally b/c the rather childish/dumb name? I read the headline... got the impression the reviewer disliked the book. Decided to read the review anyway and kept thinking to myself the book sounds decent waiting for a "but" and never found one. I may have to check it out.
  • Text Book Material (Score:4, Interesting)

    by TCFOO ( 876339 ) on Wednesday January 25, 2006 @03:13PM (#14560723)
    This would make a great text book for advanced java programming classes.
  • Re:APIs he forgot (Score:3, Interesting)

    by Heembo ( 916647 ) on Wednesday January 25, 2006 @03:23PM (#14560840) Journal
    PDFBox does not scale, it's horrible for server applications that need high load. PDFBox is also a memory hog trying to scale images. I know this cause' I built a massive image processing server and get SLAMMED from using PDFBox during high load. I moved to a System.process ImageMagick native solution to solve this problem.
  • Re:Why... (Score:3, Interesting)

    by daviddennis ( 10926 ) <david@amazing.com> on Wednesday January 25, 2006 @03:28PM (#14560885) Homepage
    Sometimes, a really good negative book review can be interesting to read, yes, and even interesting for people to comment on. So as someone who wants to enjoy their reading time on Slashdot, you have a point.

    That being said, it's not particularly useful unless you were seriously considering buying the book, and the review came just as you were making up your mind. To tell the truth, the reviews on Amazon do an excellent job in solving that particular problem, so we don't really need to worry about that.

    The most useful book reviews are going to point you to a book that you might otherwise interesting which appears so thanks to the review. And the book reviews on Slashdot do a pretty good job at this.

    If you don't want to support Slashdot, don't click on the links. But don't think of a positive review as being less of a service to readers than a negative one; I think the reverse is true, as long as the positive review is sincere.

    Fortunately, there are enough good books in the world that I don't think this is an easily corruptable process - that is, I suspect the reviewers at least glance through hundreds of awful books and never feel the desire to review them positively for the bucks, when there are plenty of books genuinely deserving a positive review with just as much revenue potential.

  • Re:APIs he forgot (Score:5, Interesting)

    by AKAImBatman ( 238306 ) <akaimbatman&gmail,com> on Wednesday January 25, 2006 @03:45PM (#14561041) Homepage Journal
    PDFBox is also a memory hog trying to scale images. I know this cause' I built a massive image processing server and get SLAMMED from using PDFBox during high load.

    Are we talking about the same thing? PDFBox is a low-level parser for the PDF format. AFAIK, it doesn't scale anything. Maybe you're referring to the new PDFtoImage functionality? You know, the tool that has the following disclaimer on it?

    This is new code and should be treated as beta quality!
  • Re:Java Questions. (Score:4, Interesting)

    by dkf ( 304284 ) <donal.k.fellows@manchester.ac.uk> on Wednesday January 25, 2006 @05:17PM (#14561915) Homepage
    Is there a way for a java app to trap keypresses when the java app is out of focus, without using a native interface?
    No. This is a huge security issue, and is unlikely to ever be included in Java.
    It's also a really sucky interface. I can remember using an app that once trapped certain keypresses for its own purposes (OK, it wasn't Java). Never ever again. There is no circumstance where having some random annoying program pop up every time you're trying to write something complex in some other program is going to be counted as anything other than bad. If you think you need it for some app, think again. Better yet, change careers to something where your psychopathic and sadistic tendencies can be of marginal benefit to society, like flower arranging or tax collection.

I've noticed several design suggestions in your code.