Books & Tools Techniques

Comprehensive coverage of Ruby 1.8 and 1.9

"The New Most Important Ruby Book"
Peter Cooper,
rubyinside.com

Completely updated for Ajax and Web 2.0

"A must-have reference"
Brendan Eich,
creator of JavaScript

Jude

Jude is my Java documentation browser. It combines Sun's definitive javadocs with the easy-to-use format of Java in a Nutshell, and tops it off with easy keyboard-based navigation and full-text searching.

Jude is available for free evaluation.

See the user's guide for more info

Java in a Nutshell

The 5th edition is now out, with complete coverage of Java 5.0!

It includes a fast-paced tutorial on the language, and a compact quick-reference for the core Java API.

Java Examples in a Nutshell

The 3rd edition, updated for Java 1.4

This edition has all-new coverage of the NIO and JavaSound APIs, completely rewritten Servlets and XML chapters, and coverage of new Java 1.4 features (assertions, logging, preferences, SSL, etc.) added througout. A great book for those who like to learn by example. 193 working examples: 21,900 lines of carefully commented code to learn from.

Java 1.5 Tiger: A Developer's Notebook

Amazon incorrectly credits me as the main author on this book. I'm actually the second author: really more of a consultant. This is a good book about all the language changes in the latest version of Java.

Effective Java

I didn't write this excellent book, but I wish I had.

Author Josh Bloch is probably best known for the collections classes in the java.util package. His experience and wisdom are apparent in this book. I learned from it and recommend it highly.

April 20, 2005

Five Favorite API Features of Java 5.0

I have a new article up on O'Reilly's ONJava site. In it, I describe my favorite API (as opposed to language) features of Java 5.0. Not necessarily the ones that are most important or most useful, but the features that I think are coolest or most elegant. These include the Callable and Future interfaces of java.util.concurrent, and also java.util.regex.MatchResult. I've blogged about all of them here.

If you read the article all the way to the end, I also talk about a new language feature that I list as a favorite simply because it is utterly obscure.

April 12, 2005

Jude 0.99

Jude 0.99 is now available. Jude is my documentation browser software; it competes with both Sun's javadocs and my own book Java in a Nutshell, and is much easier to use than either of those alternatives.

This is a release candidate for Jude 1.0. If anyone reports showstopper bugs, I'll fix them. Otherwise, I'll soon release a 1.0 version

This is also, therefore, your last chance to buy Jude at its pre-release price.

New features in Jude 0.99 include:

  • Site licenses are supported. If you have evaluated a single-user license for Jude and are interested in a site license, contact me and I'll get you one you can try.
  • Jude now exists in 2 feature levels. Ordinary Jude is intended for developers who just want to browse the public API of existing libraries. "Jude Pro" is intended for developers who want to use Jude with the public API and internal implementation details of APIs they are developing themselves. Jude Pro allows you to view documentation for package-private types and for package and private members. It includes a "View Source Code" command to display the numbered and colorized source code for any type or member. And it can scan multiple releases of an API to determine which types and members were added (or deprecated) in which release. Contact me if you'd like to evaluate the Pro version of Jude.
  • The keyboard shortcut for full-text queries has been changed to Q (for query). This frees up the "S" key for the Jude Pro "View Source" command.
  • Jude's configuration file syntax and command-line options have changed. And its internal file format has also changed, which means that you will have to re-juice any APIs you have already juiced when you upgrade. This is explained in the new Jude Administrator's Guide, which has been separated out from the Jude User's Guide.
  • Various display changes, such as improved navigation links in page headers, automatic detection and grouping of factory methods, the ability to display a recursively complete set of cross references for any type, and the display of tips for new users.
.

Download Jude here.

Get an evaluation license here.

April 06, 2005

Swing Gripes

Joshua Marinacci, Swing hacker, and new Sun employee has asked Why don't you ship Swing apps? His post has generated a lot of comments in the last week, and since everyone loves to complain, I'll join the fray.

My Jude documentation browser software would be a Swing application rather than a web server if Swing had a decent HTML renderer. In fact, it might be a Swing application if JTextComponent and the whole architecture of the javax.swing.text and javax.swing.text.html packages weren't such a mess. (Josh is the lead developers for the open source Flying Saucer xhtml/css2 renderer project, so maybe he'll be able to improve the HTML situation with Swing.)

Other gripes with Swing, off the top of my head:

  • There are no decent layout managers. The sufficiently powerful ones use baroque layout methods and are really complex. Why is there no decent way to arrange basic rows and columns of components? This is my biggest pet peeve. (And one that I may some day make the time to address. There is a simple implementation of a column layout manager in Java Examples in a Nutshell that I'd like to extend and enhance.)
  • The architecture is too complicated. JComponent simply has 10 times more methods than it should. In retrospect, I wish the Swing team had abandoned AWT compatibility and not inherited from java.awt.Container. (I wonder if it is possible to create a new component architecture that does not use Component, Container or JComponent, but that can use the component drawing code of the various PLAFs?)
  • getContentPane() -- they've finally made this optional in Java 5.0, but we should never have had to call it at all. What a gratuitous roadblock to erect between the new Swing programmer had her first successful "Hello World" application! There are other, similar things, like why can't JTextArea handle scrolling without being manually placed in a JScrollPane?

Java on the desktop was clearly not a well-funded priority for Sun. If it had gotten the attention that enterprise Java had, we'd have a rock-solid core set of Swing components, including standards-compliant HTML+CSS rendering. On top of this we'd have a standard way to create a GUI from a textual description of it (like Mozilla XUL). And we'd components and frameworks for data-centric GUI designs, including an XForms implementation.

Advertising
About
Store
Search
Google
Web this site
Archives
Syndicate

Powered by
Movable Type