Metrics...

<1 min read

Gay Spider-ManJava magazines love to duke it out. Mine's bigger than yours.

SD Times has an article on Mac OS X Server 10.2.

Apple should have dubbed Jaguar as Mac OS X.2. Mac OS X 10.2 is too redundant.

Linus on patents: "The fact is, technical people are better off not looking at patents. If you don't know what they cover and where they are, you won't be knowingly infringing on them. If somebody sues you, you change the algorithm or you just hire a hit-man to whack the stupid git."

Every so often I run JavaNCSS on the latest build of jTalk:

Nr.   Classes Functions      NCSS  Javadocs Package
  1        15       327      2330       342 com.imacination.jtalk
  2         8        97       967       108 com.imacination.jtalk.dbconnection
  3         1         2        30         3 com.imacination.jtalk.servlets
  4       122       423      3292       545 com.imacination.jtalk.taglibs
  5         1        40       270        41 com.imacination.jtalk.webservice
  6        14        58       261        72 com.imacination.jtalk.webservice.taglibs
    --------- --------- --------- ---------
          161       947      7150      1111 Total

 Packages   Classes Functions      NCSS  Javadocs | per
-------------------------------------------------------------
     6.00    161.00    947.00   7150.00   1111.00 | Project
              26.83    157.83   1191.67    185.17 | Package
                         5.88     44.41      6.90 | Class
                                   7.55      1.17 | Function

I'm a sucker for metrics. It would be nice to be able to automatically compare results between builds, maybe there's a tool out there that does just that.

Elcomsoft is not backing down. Good for them.

Buff up your Buffers...

1 min read

Happy 3rd National Slacker Day!

We installed a Netscreen 5XP yesterday. It's not fully configured yet. Allon spent a lot of time on the phone with them and is still expecting a callback on some unresolved issues.

I just noticed that StringBuffer implements indexOf() under JDK 1.4. Whenever we move our codebase to 1.4, I'll be able to get rid of my own implementation. Kewl!

While on the subject, remember that in order to reach optimal performance you should always try to avoid using:

buffer.append("test" + s + ".");

but instead:

buffer.append("test").append(s).append('.');

and don't forget it also applies for declarations, e.g.:

StringBuffer buffer = new StringBuffer(s).append("test");

I much prefer using StringBuffers over Strings, especially when holding temporary data. Reusing the same temporary object over and over allows me to keep the total number of objects to a bare minimum. I just need to make sure the object is properly reset when needed. For example:

StringBuffer tmp = new StringBuffer(0);
int i = 0;

for ( ; i < 10; i++)
{
    …
    // Reset the temporary buffer
    tmp.setLength(0);
}

// Reset the loop iterator integer
i = 0;

The same principle works extremely well with tag libraries, as most JSP containers pool individual tags. What I usually do is implement a reset function which is called when all processing is done:

public int doEndTag()
{
    …
    // Reset objects
    reset();
}


/**
 * Reset all reusable objects
 */
protected void reset()
{
    …
    // Reset the temporary buffer
    tmp.setLength(0);
}

Simple, yet efficient. KISS.

Gert Van Ham's released the first beta version of his JCE taglib which can be used to bring strong encryption to JSP applications.

Ant 1.5.1b1 is now available. I will probably install it later on today.

JIRA 1.4 beta 1 was also released today.

I like the look & feel of this blog. Good article on WiFi too.

No babies were dumped while composing this article.

Newz

<1 min read

X2

Last month, while vacationing in Hawaii, my partner proposed to his girlfriend.

Vicki made it back home safely, with one extra bag. :-P

New builds of NewzCrawler and NetNewsWire were recently released.

Sun has posted the final draft specification for J2EE 1.4. InstallAnywhere 5.0.4 is out.

To paraphrase Randy Jackson: "Kelly, Kelly, Kelly…" Hit Charade: The music industry's self-inflicted wounds.
The cassette tapes analogy is right on point.

O'Reilly: Apple should target Unix/Linux switchers. Yup.

Palm is still lying about lies. HP handled a similar problem much more gracefully.

LDAP & Tag Libraries

<1 min read
My connection is on fritz today, keeps on dropping in and out. Bummer.

'Hong Kong Phooey'  

I spent the better part of yesterday afternoon creating a new web interface for our LDAP-based address-book.

Unfortunately ldap-abook turned out to be highly inadequate. I could have stomached the convoluted code, but the lack of consistent UTF-8 support was too much to bear.

I used a combination of jTalk, and the Simya LDAP Tag Library to build a new web application. I did have to make a few modifications to the Simya library as it did not integrate well with other tag libraries.

A warning to JSP Tag Library developers:

Avoid using getParent() in sub-container tags, unless you want to prevent other tags from accessing your output data. You should use findAncestorWithClass() instead.

I don't know if Simya is still actively supporting the library, but I'll talk to them about it.

The first release candidate of JDK 1.4.1 is out.

If you're looking for a tokenzier which can be used to easily parse comma or tab delimited files, you might want to check this article out. The implementation is sound, but could use some optimization.

Vicki is coming back tonight. Yippie!

Guess what? I once again voted for Kelly. Must be love.wink

Random Babbling

<1 min read

MySQL 3.23.52 it out. I've just upgraded the server.

Yesterday I bought a copy of NewzCrawler, which is very similar to NetNewsWire, but for Winblows.

I've also created an RDF channel for this blog.

Tomorrow is going to be another busy day, we're all helping Flora finish her move. Vicki is conveniently still out of town. She's coming back on Wednesday.

Wow, major flashback. I just saw a new version of Practica Musica on VersionTracker. I bought that software back in 1989, but never really got around to use it much.

Fred Thompson is joining the cast of Law & Order. I remember when he first ran for a senate seat I thought he was on his way to become a future presidential candidate. Acting is good too.

I just read about France considering banning porn from TV. At least they're showing some. The only thing we get around here is soft-porn, which is really offending.

Apple strikes again. Looks like DDR means nothing on the Mac. At least someone is suing them over .Overpriced. Hope they win.

Microsoft now says the SSL flaw is in the operating system, not the Web browser. Let me see if I got the story straight: It's not really IE's fault, but only affects IE. Whatever… fix it already.

I'm gonna get me one of 'em Tombstone ATMs.

Ummm… I don't know what to think of the 9/11 LIHOP theory. But as far as conspiracy theories go, it's a good one.

Jump Start

<1 min read

The van did it to me again, the battery was flat dead. I jump started it, but apparently did not let it run long enough. Which is when I managed to fry my jump cables… Major duh!… Flora came over and we used her cables. Thankfully everything went pretty smooth from then on.

Me like agua.