Night's Dawn

| Tags: book, fiction, sci-fi

“Night’s Dawn” is a Science Fiction trilogy by Peter F. Hamilton. Some day more than 2 years ago, it was offered in an “ereader.com” newsletter for a special price. The plot sounded interesting and so I bought it. At the beginning of this year, I finally began reading the first book.

Now that I finally finished reading the whole trilogy, I can only say that this trilogy was quite fascinating. It contains a bunch of very nicely worked out ideas. There are souls that return to possess the bodies of living people. Even Al Capone returns and takes control over a whole star system. There are aliens - nice ones and not so nice ones. And besides adventures and some romantic moments there’s also a place for philosophical discourse.

Some people complain that there are too many characters in this trilogy. There are indeed quite a few, but it’s a space opera. There’s no way to play a space opera with only 3 protagonists, is there? Sometimes there’s a situation or person in the books, that at first seem to be totally unconnected, but in the end there’s always a connection to the main action. It may take a 1000 pages for it to get visible, but it’s there.

“Night’s Dawn” is a huuuge story, but well conceived and never boring.

NaviActionPad

| Tags: dev, intellij-idea, java

NaviActionPad is the first plugin I developed for IntelliJIDEA. I was playing around with IDEA’s plugin system several times before, but never produced anything worth publishing. Then three weeks ago the idea for NaviActionPad came into my mind and only two days later I had finished the first rough version.

NaviActionPad is firstly a navigation plugin. It allows you to navigate through a project really fast. The plugin is inspired partly by the navigation bar which is included in IDEA and by LaunchBar, an application launcher for Mac OSX.

Then as you are navigating through your project you can execute actions on the elements of the project without having to search them in IDEA’s menus or memorizing the shortcuts for them. I think it’s a nice concept and use NaviActionPad myself when developing with IDEA. Take a look at the website for screenshots and a walkthrough.

NaviActionPad relies heavily on IDEA’s PSI (short for program structure interface), which is a joy to use. PSI presents the developer of a plugin with an easy to understand view on the current project and its contents. Although IDEA’s OpenAPI (That’s the part of IDEA that is opened – not obfuscated – to the plugin developer – hence the name) is badly documented, it didn’t take me very long to find the right classes and methods I needed. Although they lack documentation the classes and methods are named very well. So you can guess what they probably will do. I my case they almost always did what I guessed they would do.

PerfectDisk 8

| Tags: tool, windows

When Windows NT was released and with Windows NT the NTFS file system, everyone said “NTFS doesn’t fragment”. When the first defragmenters for NTFS were released, we got to know how untrue that statement was.

Back in the Windows NT era I bought “Diskeeper” and was quite satisfied with it until it destroyed one of the partitions on my hard drive. I didn’t use it since then. A feature-striped version of Diskeeper was built into Windows 2001. I used this defragmenter for some time. It worked OK, it didn’t kill any partitions, but it didn’t perform too well and doesn’t till today. To really defragment a partition with it you’ll need to run it several times and even then it won’t do a very good job.

Then some 2 or 3 years ago I stumbled upon “PerfectDisk”. It worked ways better than the integrated defragmenter. Often it only needed one pass to defragment a partition. And it even had an offline defragmentation mode for defragmenting system files. Since I still had a grudge against Diskeeper because of that lost partition, I didn’t test it. So I cannot compare PerfectDisk with Diskeeper as it is now. I can only say that PefectDisk worked pretty well all the time I’m using it.

The new PerfectDisk 8 comes with a convenient screensaver mode. As soon as the screensaver is started, PerfectDisk starts to defragment the drive. You can use any screensaver you like. There is no visual output from the defragmentation in that mode. You’ll only hear your HDD working while it’s being defragmented.

Since I bought my current computer nearly two years ago, offline defragmentation didn’t work. Somehow the CMedia driver for the sound chip on my main board prevents it from starting. But there is a workaround for this. You need to disable the driver, start PerfectDisk and schedule an offline defragmentation. After rebooting the offline defragmentation starts without problems. Then again after loading Windows you’ll have to reactivate the driver. That’s a minor annoyance in my opinion. It’s still a perfect defragmenter and recommendable.

Firefox 2

| Tags: tool, browser

I’m using Firefox since its RC1 release. In the meanwhile RC2 was released.

The theme has changed a bit. It has more gradients now, but that’s OK for me. A nice addition is that the icon for closing tabs is now on the tabs themselves and not on the right side of the tabbed pane.

The greatest feature for me is the integrated spell checker. At least I could get rid of the Google toolbar which was slowing down Firefox considerably. Now any text I type into some textarea is automatically spell checked. From time to time I have to change from English to German and back again, but that’s easily done.

All of my extensions except the Delicious extension are working fine with Firefox 2. I really hope the Delicious extension is updated sometime soon.

A List Apart

| Tags: dev, web

A List Apart is like they say themselves “For People Who Make Websites”. It’s an online magazine which is published once or twice a month with articles from various masters of CSS and other aspects of web design and coding. I rarely read the issues as they come out since I’m not that deeply involved in web design.

The articles of previous issues stay online and the website provides a search facility, though. That’s where A List Apart becomes an indispensable source for web know-how. It helped me a great deal while I was redesigning the Squareness website, which will be deployed soon. It contained the hints I needed to make the menus and tabs work.

deviantART v5

| Tags: art

deviantART is – as the name may hint at – an art community. People submit art of all kinds – mostly images of all sorts – and other people comment on those posts – named deviations. It’s not an exclusive club or something like that. They let me – with my rather limited art talents – in, so it cannot be exclusive ;) Many deviations probably don’t qualify as art. On the other hand: What is art and what are the metrics to assess whether something is art or not?

Yesterday version 5 of deviantART was deployed. The new version looks really sleek and is a great improvement over the last one. The menus need getting used to, though. The first time I opened one of the new menus I moved the mouse cursor to an entry with an arrow and waited. The arrow indicates that there is a sub menu and normally the sub menu appears by itself after a while. Not so in dA v5. You have to click on it. The sub menu then replaces the original one. So it’s somewhat like navigating a file system. It’s not bad and probably the right choice for a web application - cascading javascript menus tend to be a bit jerky. They shouldn’t have taken the arrow as a sub menu indicator, though. The similarity to the menus you see on other applications implies that something will happen that surely won’t happen.

Internet Radio

| Tags: radio, music

Internet Radio isn’t really new. It’s been here for years. Anyhow, somehow I started listening to Internet radio some weeks ago and find it quite enjoyable.

The good thing about Internet radio compared to the normal radio is that there are many specialized Internet radio stations around. So if I want to hear some psytrance, I just tune in on “Digitally Imported - Goa and Psychedelic Trance” and get just that. And there’s no silly jokes here and nearly no adverts. Want some ambient music to chill out after a long days work, tune in on “Blue Mars”.

So now the question is, what program to use as an Internet radio tuner. On the Mac there is - AFAIK - only iTunes. iTunes is OK. There is a radio section in it and a good set of presets. On Windows there are many more alternatives. iTunes is also available for Windows, but it’s a bit over-sized if all you want is an Internet radio tuner. It consumes many resources. Windows Media Player doesn’t seem to know anything about Internet radio.

On Windows I find Screamer Radio to be the best application for this task. It also contains a good set of presets sorted by genre, region and network. It has a very simple UI and uses very few system resources. So it doesn’t have any negative effects on the performance of the system when running in the background. It can be minimized into the tray and the icon menu provides all the functions available in this application - such as changing the radio station.

JUnit 4.0 fun

| Tags: dev, java

The current IDEA Demetra builds now have built-in JUnit 4.0 support. Since the TestNG plugin hasn’t been updated for a while and it never was integrated into IDEA as good as the JUnit plugin. I decided to switch back to JUnit 4 for a private project of mine.

Switching from TestNG to JUnit 4 is not a big issue since JUnit imitates the annotations of TestNG and TestNG uses the Assert class from JUnit. OK, so switching was done in no time. Now let’s see whether all the tests still run. Under TestNG they all did. … Oh well, under JUnit 4 they don’t. Let’s see what the first failure is:

java.lang.AssertionError: expected:<1> but was:<1>
at org.junit.Assert.fail(Assert.java:58)
at org.junit.Assert.failNotEquals(Assert.java:259)
at org.junit.Assert.assertEquals(Assert.java:80)
at org.junit.Assert.assertEquals(Assert.java:88)
...

That’s kinda strange. What’s going on here. The test looks like that:

assertEquals(1, ingredient.getFromAmount(0).getAmount());

And there’s a an assert some lines earlier that looks very similar and succeeds:

assertEquals(1, ingredient.getConversionsCount());

So what’s going on here. Somewhere in the back of my head a light goes on. Looking into the Assert-class reveals that there aren’t any assertEquals-methods for longs and ints. You don’t need them. Autoboxing is used. Fine, but even with Autoboxing it should work, shouldn’t it. Not necessarily. ingredient.getFromAmount(0).getAmount() returns a long, which is then autoboxed into a Long. 1 is autoboxed into an Integer. Since new Long(1).equals(new Integer(1)) returns false, the test must fail.

I think the JUnit guys were a bit too fast with removing those assertEquals methods. Keeping them wouldn’t hurt anyone. Removing them will make it harder to move older projects from JDK 1.4 and JUnit 3 to JDK 5 and JUnit 4.

The fix for this issue is to make the 1 explicitely into a long like so:

assertEquals(1l, ingredient.getFromAmount(0).getAmount());

Now both – the expected and the actual value – are autoboxed to Longs and all is well.

OrigamiProject

The “OrigamiProject” has finally reached its third week, the week of revelation. The first two videos looked good and generated some pretty nice visions and high expectations. Something – some device – that is everywhere where I am but that is never in the way? Something you can take with you no matter where you go, be it a beach or the highest peak of Mount Everest? Does that sound cool? Yes it does. What is it? What does it look like? I don’t know, but for sure it’s not the “Ultra Mobile PC”.

That thing is at least twice as big as a Palm handheld, is definitely not beach compatible and would probably not start up on the Mount Everest. The best joke is “never in your way”. You’ll need a bag to take this thing with you. It won’t fit into your trouser pocket or any other kind of pocket any of your cloths might have.

So, OrigamiProject is a series of three nice ads for a product that isn’t invented yet.

T-Shirt Folding

Well, actually this is quite old, but it hasn’t come to my attention till I saw it on a German talk show on Friday. Looks like there’s a rather quick method for folding t-shirts that originated in Japan. Here’s the full description of it – including a video - and what advantages and disadvantages it has.

Since I always mess up when folding t-shirts this trick is really an improvement for me. I haven’t tried it with long sleeve shirts though with a small modification it is said to work with them too.