Looks like my bro recently posted the new Cold As Ice music video to YouTube without telling anyone:
Like the song? Why not buy the album off iTunes or CDBaby? - go on - you know you want to.
At tonight's JavaCom meeting I gave a short lightening talk on OSGi - I was caught a little unprepared and hadn't realized the meeting was tonight so it was a bit rushed together - still the presentation went well - I still need to work more on slowing down, and not jumping ahead of my slides:
As with the presentation itself, seeing some code actually run is more interesting than mere slides, so I recorded a short screen cast showing the two small bundles in operation.
It wasn't a big turn out tonight, but it was still a good night out.
Some more new music with minor A-Z tour - part of me is getting tired with the tour, but I'm still enjoying revisiting music I've not heard in ages and having it filter into my regular playlists. Still, I feel I need to get back into more tech posts.
Apple has finally released Java 6 for OSX:
About Java for Mac OS X 10.5 Update 1
This Java for Mac OS X 10.5 Update 1 adds Java SE 6 version 1.6.0_05 to your Mac. This update does not replace the existing installation of J2SE 5.0 or change the default version of Java.
Let there be rejoicing!
I recently hit an interesting bug in the TestNG plugin for IntelliJ IDEA. The bug was triggered by a null being set on a Properties instance, and after a hour or so working out what was going on I managed to reproduce the problem with the following test setup:
public class SomeTest {
public void someMethod() {
class SomeClass {
@Test(groups = "test")
public void thisTestBreaksThings() {
assert true;
}
}
}
@Test(dependsOnGroups = "test")
public void thisTestTriggersABreak() {
assert true;
}
}
When running the test method "thisTestTriggersABreak", the IDEA plugin searches for any dependent tests which may be needed to bring into the generated suite. In this instance, the plugin finds the @Test method "thisTestBreaksThings" and adds "SomeClass" to the suite, however a PsiClass instance will return null for anonymous and local classes, which then triggers the NullPointerException later on.
The initial patch for the problem was to simply abort the test run when such an invalid test setup is encountered, with the next step is to add an inspection to highlight, and help prevent the problem - however I wondering if this check should be at the annotation/language level rather than at the IDE plugin level.
Currently an annotation's target member can be defined with @Target (see java.lang.annotation.ElementType), but this doesn't allow us to specify any further context - such as "only methods of public classes" (I'm not even sure what syntax would be appropriate, or possible for this). For this functionality I suspect I'd have go to the annotation processor route, but AFAIK this would only work at compile time, so I'd still be needing IDE specific intentions anyway.
In honor of my new head unit I thought it's about time to break this A-Z tour of iTunes and catch up on some of the recent music I've picked up and not really heard yet. Of course I'll be back to the tours shortly.
Last week I picked up an Alpine IDA-X001 "built for iPod" head unit for the car. Previously I'd been using a mixed variation of FM transmitters, tape adapters, or simply driving with headphones - the later sounds the best, but I find it seriously impaired my spacial awareness (no - I didn't crash into any thing or any one, but I could see how it could easily happen).
I knew it was time to hunt out a head unit that supported iPod's and since the car already had a great sounding Alpine unit I thought I'd start there - and I didn't need to look long before I found the IDA-X001:

After a week of using the head unit I can safely say I'm in love with it. Finally I have killer sounds once more in the car, I'd forgotten how well the stock speakers sounded when blasted loudly. So what are the key things that make me love this unit so much, beyond the sound?
It's a fairly small list really, but the effect of those small things makes the purchase worth it. However, with every positives there's a few negatives:
All in all nothing to shake a stick at, it's a wonderful head unit and I couldn't be more pleased.
For a while now I've been a major fan of Damien Guard's Envy Code R programming font, and have been using preview 6 as my primary coding font for ages. I was lucky enough to get sent a preview version of PR7 which I've been using for most of the day so far and have a few immediate thoughts...
Note: All screen shots and usage so far is under Java 6, IntelliJ IDEA, Ubuntu Hardy Heron. The left version is PR6 and the right PR7.
When using 13pt I'm not noticing that many differences yet - I suppose this in itself is a testament to how good PR6 already was. I'm sure the more I use it I'll start to notice some of the finer adjustments:

It's when I drop myself to smaller font sizes do we really see the improvements Damien's recently made. I normally prefer working with a slightly smaller font, using 11pt clearly shows a marked improvement:

And for the masochists among us, a 10pt variation, which was pretty much unusable has become clean, crisp, readable - but still way to small for use at the resolution of this laptop.

As it stands, I believe the 12pt setting is my current "sweet spot" for this machine and I'm looking forward to trying out PR7 on the Mac once I get home tonight, and I'm definitely looking forward to a publicly available PR7 release - great work Damien!

So I was sitting there talking to my Dad on MSN earlier, when shortly after commenting he hadn't dislocated his hip for awhile (long story) he goes silent, then follows up with "just dislocated the hip... calling ambulance":
Initially I just paused, or lagged as a surreal numbness uncomfortably came over me - know what pain my dad must be feeling as he says he's calling an ambulance. I re-read what I'm seeing, subtly noticing that what was well typed (spelling errors aside) has turned into what I can only imagine was an agonizing one handed chicken pecked attempt at typing a goodbye message.
Knowing that I'm a 6 or so hour drive away, and hopelessly useless for anything in the situation leaves me feeling empty and drained.
Hope you're feeling better soon dad - miss you, love you.

