A dozen tips for testing free software is an interesting article about OSS quality. I want to compare this with some ideas we in the OpenJDK Quality Team have for quality of the OpenJDK and commercial JDK releases. I talked a little about these ideas at FOSDEM last month.
One of the best ways you can participate in the free and open source software (FOSS) revolution is by helping to test...
on Mar 20, 2007
Java SE 6 provides new i18n support in 6 major areas. It's way too much for the standard blog entry, but you can read the full-length article International Enhancements in Java SE 6 to find out how you benefit from these:
resource control and access -- you get more control over how resource bundles are loaded, their file formats, etc
locale-sensitive services -- add your own locale info, or...
on Mar 20, 2007
The purpose of JSR 308 is to allow to
define annotation on types.
Currently, the JLS 3 only allows to annotate
language elements than accept modifiers so
it's not possible to annotate types.
Why allowing this is a good idea ?
There is real interest to allow annotation on Java types,
it enables to write safer code by performing
static source code analysis. Imagine...
on Mar 18, 2007
In 100% Java Quercus PHP engine running in GlassFish Java EE 5 Application Server... is a big of excellent news. Caucho, the maker of the Resin app server, has developed a pure-Java PHP execution engine. The engine is under the GPL and last fall I'd tested it using the Drupal content management system. Near as I could tell it worked fine, and it seemed that since it's under the GPL one could...
on Mar 13, 2007
US daylight saving time (DST) changes took effect this weekend. Were you ready? Did you know?
If not, you may still need to read up on the problem. If you haven't updated your server software or the JRE in a while, you might consider that as well.
For more information on the DST changes and how they affect your systems, check out this summary page:
Effects of 2007 Daylight Saving Time Changes on...
on Mar 12, 2007
Earlier I mentioned that many of the Date constructors and methods are deprecated. You shouldn't use them. Someone immediately wondered how they were supposed to find out what the date actually meant...what year is it? month? day? If you can't ask the date object directly, what should you do?
The answer comes from the java.util.Calendar class. Use a Calendar to create a specific date from year,...
on Mar 11, 2007
I finally found some time to get back to the generics saga. A comment in the feature request says that wildcards should help make Semirings easier to use. This article describes what I was able to do with them, and the effect they have on the code someone using JDigraph would write. It was a bit of a disappointment. I could only use wildcards where my code did not use the type parameters. That...
on Mar 10, 2007
The java.util.Date represents a snapshot of time, independent of locale, timezones, etc. It does that pretty well. However, the little class got overworked early in its career. The ability to set years, dates, and months got tossed in, and formatting abilities, and...something that should have been really lightweight became overweight, or maybe we should just say big boned.
on Mar 6, 2007
A new interview I did with Sun technology evangelist Brian Goetz,
"Writing Better Code:
A Conversation With Sun Microsystems Technology Evangelist Brian Goetz"
explores several areas of his considerable expertise. He addresses
concurrency issues; the problems Java developers have in identifying
performance problems (think architecture, not coding); the importance
of writing clean "dumb code" and...
on Mar 2, 2007
Last weekend was FOSDEM 2007 .. it's a rather large meeting, in Europe, of open source developers and others interested in open source. I honestly did not know about this meeting until recently, but I did attend (with other OpenJDK team members) and wow it was a wonderful event. FOSDEM had participation from pretty much every branch of open source software including FreeBSD, OpenBSD, OpenSuse,...
on Mar 2, 2007
In general, calendars are not easy to understand, develop, or to use. They are complex, created out of the need to understand and put order into celestial movements, seasons, religious events, and political decisions. It's a wonder that we stay on schedule for anything, and yet we do, and the world moves on, and we still are able to use the Java platform's Calendar and Date classes to properly...
on Mar 1, 2007
Check out my new technicle article on java.sun.com: Programming With the Java XML Digital Signature API.
This article introduces you to the new XML Digital Signature API in JDK 6 and shows you how to generate and validate an XML Signature using the API. If you want to know more about XML Signatures and how to process them in Java, then start with this article. And let me know if you have any...
on Feb 28, 2007
Recently, Stephen Colebourne and Stefan Schulz post another closure like proposal, yes, yet another one.
They propose another syntax for describing a closure
which, in my opinion, is more a simpler way
to declare an inner-class.
I am not a big fan of this proposal,
i definitively prefer the
decribed by Neal Gafter.
But there is something that i like in their proposal...
on Feb 27, 2007
If you want to talk about:
Why the JLS doesn't allow
array of parametrized type.
Kitchen Sink Language.
Why beers are so great in Belgium ?
I will be saturday and sunday at
on Feb 20, 2007
One curiosity about Model MBeans is that attributes also appear
as operations. Is there any way to avoid that?
We encounter this question occasionally, most recently in the
forum on SDN. As the contributor there notes, this is
tracked as RFE
6339571, but won't be implemented until Java SE 7. What
can you do in the mean time?
In order to define an attribute, say Foo, as...
on Feb 13, 2007
Continuing the discussion about Unicode normalization, I'll briefly describe Normalization Form C (NFC). NFC is canonical decomposition followed by canonical composition. It's the form you see the most all over the web, etc. In fact, NFC is the preferred encoding for the world wide web. Why? Well, the form is slightly more compact than a decomposed form containing combining sequences, and most...
on Feb 11, 2007
You'll recall from a previous blog that normalization is the process of transforming text into a standard form that facilitates reliable searching, sorting, and other text operations. Java SE 6 provides a new normalization API that implements the Unicode standard for normalization: java.text.Normalizer
There are 4 normalization forms: NFD, NFC, NFKD, NFKC. Normalization Form D (NFD) is canonical...
on Feb 8, 2007
It's been awhile since I last blogged here, I apologize for being so quiet but I've had quite a lot of things to think about. I want to kick off regular blogging with one of those things ... namely what would a quality team look like in the open source world. I know there are many open source projects that have quality efforts such as the unit testing (test-first development) that is so popular...
on Feb 5, 2007
One of the features planned for version 2.0 of the JMX API
is cascading, also known as federation.
Here's what it is, and how you can build a simplified form of
the same thing without waiting for 2.0.
Update: a subset of the Java DMK product has been released as open source. Daniel Fuchs explains how to use the Cascading API from Open DMK. I would recommend using this in...
on Feb 1, 2007
Give me a reason, any reason at all, to continue using Mac OS X as my primary development platform for Java applications. Java SE 6 is available now for Windows, Linux, and Solaris platforms. Why not for Mac OS X? Don't you dare mention that Java SE 6 is available on Mac OS X...I know about that. The available Java SE 6 implementation is stuck at build 88 and hasn't been updated in months.
on Jan 29, 2007