November 2002
[ bob ] 17:00, Wednesday, 27 November 2002

The -use option to javadoc can greatly simplify the life of someone attempting to understand your code. It's especially useful with developer versions of javadocs which should also use the -private option.

-use Includes one "Use" page for each documented class and package. The page describes what packages, classes, methods, constructors and fields use any API of the given class or package. Given class C, things that use class C would include subclasses of C, fields declared as C, methods that return C, and methods and constructors with parameters of type C.

For example, let's look at what might appear on the "Use" page for String. The getName() method in the java.awt.Font class returns type String. Therefore, getName() uses String, and you will find that method on the "Use" page for String.

Note that this documents only uses of the API, not the implementation. If a method uses String in its implementation but does not take a string as an argument or return a string, that is not considered a "use" of String.

You can access the generated "Use" page by first going to the class or package, then clicking on the "Use" link in the navigation bar.

[ bob ] 11:09, Saturday, 23 November 2002

RPV: Triples Made Plain describes Tim Bray's new proposed serialization of RDF assertions.

The current RDF serialization format confuses me. RPV seems much clearer. Maybe, hopefully, it'll lower the bar for RDF-enabled applications?

There's been musings of an RDF semantic module for drools and possibly hooking drools into some Linda/TuplesSpaces implementations, such as JavaSpaces or JXTASpaces. Piping space objects and properties to drools via RDF, or ideally, RPV, would definitely allow some coolness.

[ bob ] 12:14, Thursday, 21 November 2002

Uche Ogbuji has set up the XPath-ng mailing list for discussing something to follow XPath 1.0.

Yes, the W3C does have XPath 2.0 in progress, but there is the general opinion that it's overblown and too dependent upon other specs, particularly XML Schema.

XPath 1.0 rocks because it so closely follows the 80/20 rule. XPath 2.0 from the W3C looks significantly less enlightened.

As the project lead for jaxen, I'm following the XPath-ng conversations closely.

[ bob ] 02:34, Monday, 18 November 2002

So, I haven't blogged in a while, and I needed something new to read, so I fed in an arbitrary search term (coffee) into CiteSeer, and Conditional Nonlinear Planning by Peot and Smith churned up.

Work-in-progress on the design of a conditional nonlinear planner is described. CNLP is a nonlinear planner that develops plans that account for foreseen uncertainties. CNLP represents an extension of the conditional planning technique of Warren [75] to the domain of nonlinear planning.

Reading this paper, I definitely think that magic of the human mind comes from its non-linearity. Creative epiphanies typically come from non-linear reasoning. Finding better or more efficient ways of accomplishing a goal comes from non-linear planning. Ostensibly, making lemonade when life gives you lemons is a non-linear activity.

As has been mentioned, I've spent some time doing logistics planning, mostly with regards to transportation planning and scheduling. There has always been a pretty large disconnect beteween the planning and execution in the transportation industry. While telematics can provide a real-time view of the environment, there is still very little dynamic re-planning to react to the environment. We deal in terms of historical statistics when making a plan that executes in a decidedly concrete world.

Dynamic replanning can plan around a changing environment, while it seems non-linear planning can plan for a changing environment.

I'm just fascinated by techniques to allow us to better model the imperfect world via the perfectionist computer.

[ bob ] 02:41, Sunday, 10 November 2002

JSimul is a java-based simulated annealing package.

JSimul is a JAVA-based simulated annealing package consisting of three layers:
  • A swing-based user interface that provides intuitive access to the tuning of the algorithm's parameters.
  • A simulated annealing algorithm coupled with a downhill simplex, mostly a JAVA object wrapper around two algorithms in Numerical Recipes (1) (ameba & amotsa). The driver is inspired from the example book(2), but I've added my own clustering scheme to test for convergence.
  • Examples of a third layer (ie: test objective functions to minimize) are provided with the release. Refer to the directory structure section for their location. Presently, this third layer must be written in JAVA. Adding the flexibility of using C or Fortran code (through JNI) is high on the TODO list

I love things that search solution spaces, particularly for solutions that aren't necessarily correct or incorrect, but rather feasible or optimal. I've got a strong interest in genetic algorithms which are a somewhat distant cousin of simulated annealing. What is cool (pun intended) about SA is that its based upon the real-world metaphor of slowly cooling metal during the annealing process.

[ bob ] 00:53, Friday, 8 November 2002

dynamicobjects spaces is just one example of the trend of everyone wanting to make everything look like Outlook. We all complain about how crappy MS software is, how they can't design a humane interface to save their ass, yet we attempt to make every application look like Outlook.

At my previous Day Job, we were working on a logistics execution application. It looked like Outlook. Hrm.

Outlook's 3-pane design might be roughly useful for applications that mostly just organize data. But, for robust applications that have user interactions that are more complex than pushing bits from one folder to another, please attempt to resist the urge to make it look like Outlook.

[disclaimer: I still do email using Pine 3.96 and vi]

[ bob ] 16:11, Tuesday, 5 November 2002

Looks like Russell forgot his medicine this morning. We all have political ideas and agendas, but I prefer to think of the java.blog world as a place we can set aside irrational/emotional crap, and go about getting some real work done.

[ bob ] 22:07, Sunday, 3 November 2002

Stephen Berczuk and Brad Appleton have just published SCM Patterns. That's software configuration management not supply-chain management in case you're confused. Brad's a smart guy, even if he has an unnatural love for Rational ClearFoo products. I like SCM, having done a little time with accurev.

This book describes many of the common problems organizations face when using SCM in a way that is not consistent with the needs of their organization. The book presents the patterns organized in a pattern language that shows how the various structures that you need to use for an effective SCM system build on each other.