Note: This is the archive of my old homepage. To continue to the new homepage, go to http://davidtanzer.net

This is the personal homepage of David Tanzer. Here you can find a blog-like collection of articles I write. The RSS newsfeed is available here. You can contact me via email: mail-AT-davidtanzer-DOT-net.

You may use everything I write in this blog (tagged as "Submitted by struppi") except the linked papers and some other parts with explicit exceptions to this license, in whole or in part, without asking as long as you give me credit (like for example: "David Tanzer (http://davidtanzer.net) wrote in his blog: [Some quote from this homepage]").

IOC, Services, Interfaces

Some time ago I have removed the Interfaces for ServiceManager, ProjectManager and CardManager from Agileplan. When using code navigation in Eclipse it was quite annoying always to come to the interface instead of the implementation, especially because I can't imagine a scenario at the moment where you have more than one ProjectManager implementation. And even if there is one in the future it will be pretty easy to refactor the program again and extract an interface from these services.

I am blogging this now because at the moment I am working in a project where the IOC framework they use only supports Services which are defined by a Java interface and have at least one implementation. Been there, done that. Even worse, their framework can not be configured to use a certain implementation, but the different implementations of a service have to provide a method which returns true if the implementation is capable of handling the current situation. If more than one implementation returns true a random one is picked.

I've had some problems with hivemind and I have complained here about it, but right now at the moment I'm really glad to have it in agileplan ;)

Why am I still surprised?

Another nice error message from Oracle:

ORA-00936: missing expression
Cause: A required part of a clause or expression has been omitted. For example, a SELECT statement may have been entered without a list of columns or expressions or with an incomplete expression. This message is also issued in cases where a reserved word is misused, as in SELECT TABLE.
Action: Check the statement syntax and specify the missing component.

(from ora-code.com)

So: The same error message for two different error cases - Thanks oracle developers, you really make my life a lot easier.

Anonymous comments turned off

I have turned off anonymous comments because I got some blog spam even with captchas enabled. Please register if you want to post comments to this blog. Meanwhile I hope that those f***ed up bots don't learn how to register ;)

Bachelor of Science - Finally

Now I am (almost) officially "Bakkalaureus der technischen Wissenschaften" - The only thing missing is the dead-tree-letter which is the official confirmation.

baaaaakkkkk

Spambot solved my captcha?!?

Looks like a spambot (or something similar evil ;) ) made comment on this page which has captcha turned on for anonymous users. Strange.
Here is the comment

Fun with a chatbot

http://think.jabberwacky.com/

Me: What is the airspeed velocity of an unladen swallow?
Bot: Is that an african or european swallow?
Me: African.
Bot: The airspeed velocity of an African sparrow carrying a coconut seems to be in the range of 3 to 7 miles per hour.

Ok, I know it's a little bit lame to ask a bot the swallow question, but alice doesn't know the answer.

Why am I still surprised?

Oracle doesn't support "DROP TABLE IF EXISTS table_name;". Some nice workarounds are here and here. I think I'll just catch the SqlException in Java and hope that the reason was that the table did not exist. Because: I'll not check for the exception message. This would introduce more possible problems than logging a warning and ignoring the exception.

Update: An insert with multiple rows doesn't work either:

INSERT INTO table_name VALUES
(1, 2), (3, 4);

Oracle just returns an error code. The preferred way in oracle is to select these values from the special table "DUAL" and make a union over the results. Obviously this isn't portable, so I did something like:

INSERT INTO table_name VALUES (1, 2);
INSERT INTO table_name VALUES (3, 4);

New MacBook Pro

I finally have my new MacBook Pro up and running. I removed the Bootcamp Windows partition and bought Parallels Desktop instead. I did this to get my least favourite Database Management System to work - yes, the one with the VARCHAR2 datatype - because they don't ship a version for intel based Macs yet. In fact they don't even ship a version for OSX 10.4 althoug I heard you can get the Panther-version running on Tiger too.

But now everything is fine, I have OracleXE running on Windows in Parallels Desktop, and everything else is ready too. Now I can finally work on my Mac at Sony and I can return the notebook I used for work before.

Create a WinXP SP2 Slipstream CD with Nero 7 Demo

Today I bought a new MacBook Pro (which is pretty cool BTW) and one of the first things to do for me was to install Windows XP with Bootcamp. I sometimes need Windows at work, and that's one of the reasons why I bought the MacBook Pro. Installing Windows is something one wants to do early so when something goes wrong you can simply reinstall the whole system.

To install Windows XP with Bootcamp you need a Windows CD that includes Service Pack 2. Unfortunately our Microsoft Action Pack subscription ships with WinXP Professional SP1 and a separate SP2 CD, so I had to create a new CD with Slipstream. I used this step by step description to create the new Windows CD.

The problem I had is that I first wanted to use Nero 6 Express edition to burn the CD (this braindead program shipped with my computer), but it can only read the boot imag from a floppy drive. A Floppy Drive! Ok, I don't have one, so I downloaded the Nero 7 Demo.

The Nero 7 can load the bootimage from the hard drive, but the Demo version does not allow you to select a different file than "c:\Programme\Nero\Nero 7\Core\DosBootimage.IMA". You can still use Nero 7 to create the bootable CD by simply replacing this file with the image you extracted in Step 3 of the description. Once again, some software protection didn't protect the software, but just wasted my time. Thank you Nero developers, I will not buy your product.

Now, what exactly _is_ pluto?

Is it a dwarf planet? A planet? Just a rock nobody really cares about? Well, the last word might not yet be spoken in this case: http://news.bbc.co.uk/2/hi/science/nature/5283956.stm.

My favourite quote from the article:

[...] like-minded astronomers had begun a petition to get Pluto reinstated. Car bumper stickers compelling motorists to "Honk if Pluto is still a planet" have gone on sale over the internet and e-mails circulating about the decision have been describing the IAU as the "Irrelevant Astronomical Union".