Thursday, April 17, 2008

IBM now loves Macs

Interesting point: IBM is now researching what user impact while migrating to Macs:

A summary of the pilot program, detailed in a IBM document obtained by RoughlyDrafted, revealed that IBM is actively working to move away from its dependence upon Microsoft Windows and toward a heterogeneous cross-platform future.

Wait a second. IBM makes their laptops no more, right? So do not really cares about their future. Personally I am not very sure this move will bring value in a physical items, but this move from IBM, as a father of all PCs is very clear symbolic/spiritual/political/charismatic/call-it-whatever sign to others sign to which way corporate standard shall go.

That's pretty much it: no more IBM Lenovo laptops as corportate de-facto standard.


Wednesday, April 09, 2008

Safari 3 passes Acid 3 test

Safari 3 passes Acid 3 test. Despite of Opera "won" it faster getting all bits of the test, still it is available only in 9.0 version and still performs more poorly than Safari WebKit. Here I updated the engine of the browser. That's pretty it on a screenshot, nothing else to add:


Safari rulez! :-P

The real life still is quite different: MSIE still keeps huge market-share and it still can squeeze only ~17% of the test. Firefox still quite far from the ideal status too. So let's forget about really good AJAX applications and back to the reality... or... Java WebStart?..

Sunday, April 06, 2008

How To Modify Classpath At Runtime?

I am designing a quite large system that one of the user interfaces is based on Java Swing GUI library. Each subsystem is a standalone application itself that can be used separately if appropriate conditions issued, however they also are plugins within the central UI infrastructure.

If application is standalone, authentication is its own and other applications are not visible. If application is connected as a plugin within the infrastructure, then common authentication mechanism is used and tight integration with other applications appears.

Whatever, during some investigations, I needed to modify my $CLASSPATH at JVM runtime. For curious people how it is done, here is a source below. Enjoy:


import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;


public class ClassPathModificator {
private static final Class[] urlParams =
new Class[]{URL.class};
public static void appendPath(URL newURL) throws
IOException {
URLClassLoader classLoader = (URLClassLoader)
ClassLoader.getSystemClassLoader();
try {
Method meth = URLClassLoader.class.
getDeclaredMethod("addURL", urlParams);
meth.setAccessible(true);
meth.invoke(classLoader, new Object []
{newURL});
} catch (Throwable err) {
throw new IOException();
}
}

public static void appendPath(String newPath)
throws IOException {
appendPath(new File(newPath));
}

public static void appendPath(File fileObj)
throws IOException {
appendPath(fileObj.toURL());
}
}



P.S. Extremely stupid Blogger's interface does not allows me to make it nicer, so I had to give up colorize the code and had to wrap it that ugly... :-(