... indistinguishable from magic
effing the ineffable since 1977


Recent Posts


Japi Go Lucky


My theory that blogging about Japi progress makes the results improve faster seems to be proving correct. A month ago yesterday I mentioned that the status versus 1.2/1.3/1.4 was 62/63/88ish+2, plus one entire class. A month later, the scores now stand at 24/24/47+2. That's one class and about 40 methods down. Keep up this rate of progress and we'll be celebrating the new year with 1.4 API perfection!

Credit for the latest batch of gains:

  • Andrew John Hughes took out six in beancontext.
  • Roman Kennke nailed eleven in awt.font.
  • David Gilbert spotted that a couple of beancontext methods were marked as not implemented even though they were actually implemented just fine.

Also Roman's work on HTML continued with this amazing screenshot. Apparently it's still too slow to be really usable, which is good because it means I don't (yet) have to make good on my pledge to redo the HTML to be nice and clean and not use 1x1 spacer gifs. I'm not going to take away such a handy stress-test for the HTML code until it can pass it...


Japi Gilmore


David Gilbert is now vying with Roman for the title of Japi King, having knocked out no less than seven of the beancontext errors. And Roman vaporized one more in Swing to bring the totals now to 43/43/66+2 (that's missing methods (plus two 1.4 constructors) for those of you following along at home, but the results pages don't show the last five of David's fixes yet).

Roman, on the other hand, has achieved the one thing cooler than awesome Japi results: an HTML implementation that can render awesome Japi results!


Japitools 0.9.7 released

I'm thrilled to be able to announce four things:

1) After far too long a wait, Japitools 0.9.7 "Life, liberty and the pursuit of Japiness" has been released.

This release includes the following improvements over 0.9.5:

- Almost complete 1.5 language support, including generics, enums and varargs methods. The only missing feature for full language support (and the only blocker for a 1.0 release) is annotations. Big thanks to Jeroen Frijters for doing the heavy lifting of teaching Japitools to parse these features in .class files.

- The ability to mark methods as not implemented by adding "NotImplementedException" to the throws clause. This allows Japitools to give results that more accurately match reality when parts of an API are known to have been "stubbed out" rather than actually being implemented.

- The ability to traverse packages non-recursively (thanks to a contribution from Jaroslav Tuloch), making it easier to correctly specify the packages that are part of a public API, especially when that API is large. The new japiextractpkgs tool allows the list of packages to be extracted from Javadoc documentation.

- An Ant task for running Japitools, thanks again to Jaroslav.

- Too many bug fixes and minor enhancements to name, including a lot of changes that eliminate false positives and false negatives from the results. Thanks to many people for bug reports, feature suggestions and help in testing.

2) That there is now a Japitools mailing list, See the mailing lists page for more information.

3) That Japitools has a new homepage, It's ugly, and it's still a work in progress - some sections are still missing content, and others still have content that hasn't entirely been updated to match the current state of reality. I didn't want to delay any further getting the new release into people's hands. I'll continue working on filling out the content.

4) That Sun are AWESOME today!



f(x) = 6x walks into a bar and asks for a sandwich. "Sorry," says the barman, "we don't cater for functions."

This isn't quite plagiarized from marnanel, but its derivative, I admit.



I've added category support to my blog and gone through at least the most recent few items adding categories. Planet Classpath readers, I hope that updating a whole bunch of posts all at once isn't going to force all my entries to the top. If it does, I apologize...

Next Page