Archive for January, 2007

Windows XP woes

January 16, 2007

I recently bought a “new” laptop to replace my old Compaq Armada, which had finally died due to a bad power connector.

The new laptop, coincidentally a Compaq/HP as well, is a corporate off-lease and comes with a Windows XP Professional license key (an OEM sticker on the bottom of the machine).  Perfect, I thought, I can dual-boot the machine, instead of borrowing my parents’ computer to play those games that don’t quite work in Wine yet.

Or so I thought.  After an entire weekend of finding and borrowing every Win XP Pro installation CD I could get my hands on – OEM from a friend, volume license from an organisation I volunteer with, with SP1, with SP2, playing with the setupp.ini file… I simply couldn’t get the thing to install.  It would refuse my (valid and legal) license key, no matter what.

So here I am, many hours later, staring at a valid license key that I can’t use.  At least it came OEM with a used computer, and so I didn’t pay much for it.  But this is ridiculous, and I hear Vista will be worse.  Anti-piracy is one thing, but valid users need to be able to use the product as well…  Or, wait, rather than doubting your users and treating them all like criminals (what happened to “innocent until proven guilty” anyways), why not embrace your user community and work with them?  You can still make plenty of money that way.  Just ask Red Hat.

Half-way

January 2, 2007

Today marks the half-way point of my internship with Red Hat… I started 8 months ago, at the beginning of last summer, and I’ll be here until the end of next summer. And since this blog’s now on the Planet, I thought I’d reflect a bit on my Classpath work over the past few months.

Interestingly, when I came here, I had just about zero experience working with graphics – who knew that would become my focus. After some time doing various bug-fixing and learning the codebase, my first major “project” was the java2d benchmarker. It’s in the classpath examples directory, and I’m still using the tool: both to measure performance, and as a quick visual test of basic java2d drawing.

Image operations were next on the list: testing and fixing the various java.awt.image.*Op classes… transforms, band combine, convolve, and the like. Performance still isn’t as good as I’d like, but those classes are now tested much more extensively in Mauve and are much more robust.

But recently, I’ve focused on our java2d cairo peers, using the Batik testsuite to measure compliance. With Sun’s recent open-source Java announcements, this has become all the more important since it is a potentially encumbered area of Sun’s Java implementation… we’ll see if any of my work sees the light of day. The test-suite has gone from crashing horribly, through a number of steps, to mostly passing. Instead of most tests throwing exceptions, now half the tests complete perfectly, and another third are pretty close. That leaves only 5 of 30 tests crashing or otherwise failing badly.

The Batik samples have been a great stress-test for our java2d, as it uses many of the less common areas… custom composites and gradients, translated subimages and subrasters, etc. Once the rest of the tests are passing, I’d be interested in profiling these tests to see exactly how much of the java2d is tested: I suspect it’ll be most of it. In the meantime, here are some interesting before & after screenshots:

barchart - badbarchart - final
chess - badchess - final

gradients-badgradients-final

gvt-badgvt-final