qa@netbeans.org: “We'd like to inform you that the following issues you reported have been addressed in the new version” and listing four bugs I’d filed. What a nice touch. atomURI#absolutize was returning a URI not a string (and by the way, why doesn’t URI offer String methods like index and =~!?! But I digress.) Anyhow, I moaned, thinking “Crap, that’s used everywhere, what am I gonna break?” What I needed was “Find Usages”... Hah! I’d recently grabbed a new NetBeans 6 pre-release (the 070810 build of M10) and Tor’s been doing some heavy chest-beating recently. Here goes with the right-click ...Net::HTTP#start on an apparently-valid connection and then... nothing. Eventually, I was driven to looking in the library source, net/http.rb. Hey, it was easy to understand! (Have I talked about Ruby and readability before?) I could see where my request was going, but I couldn’t see how it could go wrong. Well, this is a dev machine, and Real Men debug with print statements. So in they went... right into the Ruby distro libraries, I mean. And I ran it again. Only took a couple of minutes to zero in the problem; in this case, a JRuby bug. I’m not sure what the lesson is... but the code spelunking was frighteningly easy. This is not typical of other peoples’ HTTP libraries; I have bitter memories of bashing my head to a bloody pulp against LWP back in the last millennium. Did I mention readability? [Ed. Note: You’ll be happy to hear that there are only a couple more RAD entries in the pipeline, then I’ll be done.]<<, and maybe everyone else already knew about this, but it sure feels like magic to this farm boy from the Prairies. Bonus: Lisp speculation ...mod_php (first benchmark, but on a real app not synthetic). It’s GPL’ed. This is more than a little surprising. I’ve been campaigning heavily in the Java community at large and here at Sun specifically to make dynamic languages on the JVM a major priority, but I’d never really focused on PHP, because I didn’t know anyone was even working on the problem. (Well, to be honest, also because PHP has always made me nervous.) This changes the “On Beyond Java” picture. [Late addition: last word to Steve Jenson.]invokedynamic, designed to lower one of the nastier barriers faced by people staging dynamically-typed languages on the JVM. Gilad’s style is awfully prickly, but the narrative is engaging.MyClass<K>[] dammit! (And I understand that the warnings are correct, and that where previously I had an un-flagged potential ClassCastException, now I can’t claim that I didn’t know.) I suppose there’s another benefit in that my APIs’ users won’t be able to put a Bicycle in a container designed to hold instances of Fish; is that a biggie? Personally, the compiler warnings irritate me more than the casts did, but if what Tor and some of Ken’s commenters are saying is right, I should just suck it up, because my users are benefiting.if ((x.size() > 0) && x.get(0).equals(foo))writeObject()/readObject() calls with setTcpNoDelay(true) in effect. When both of them are running on my 1.25Ghz PowerBook here, the latency required for the whole transaction is like 190msec, which is horrible. So I moved the server code down to the mouldy old P300 Debian box in the basement, talking to it over two or three legs of WiFi and Ethernet switches, and the latency dropped to around 33msec; still not great, but the difference is instructive.