Too much flexibility hurts, really…

Eclipse supports more than one way of referencing libraries, for example MyEclipse hibernate support adds related jars in a separate item which is not in referenced libraries. You see another item in the package explorer under your project.

The result? Almost always, Google Web Toolkit refuses to load these libraries. Apparently the best thing to do is to create a local folder like libs or something, copy the jars into it, and add them from the build path configuration. Otherwise, running the deployed code becomes a nightmare.

There is a really, really thin line between flexibility and complexity, but that’s the one to watch for.

Too much flexibility hurts, really…

Eclipse supports more than one way of referencing libraries, for example MyEclipse hibernate support adds related jars in a separate item which is not in referenced libraries. You see another item in the package explorer under your project.

The result? Almost always, Google Web Toolkit refuses to load these libraries. Apparently the best thing to do is to create a local folder like libs or something, copy the jars into it, and add them from the build path configuration. Otherwise, running the deployed code becomes a nightmare.

There is a really, really thin line between flexibility and complexity, but that’s the one to watch for.

Another 3 hours for a silly configuration!

No matter how many years you spend on software development, this particular situation always seems to emerge. I have spent the last 3 hours trying to figure out why my code is not working. I am writing an Eclipse plugin (actually an Eclipse RCP application) for Bayesian inference, and I need to use a native dll that belong to the inference library I am using.

How hard can it be? Well either I am not at my brightest day today, or configuring a reference to a native dll is rediciolusly hard. There are about a zillion parameters you can set, and after working on zillion of them, what seems to be working is to follow the steps below

create a libs folder for jars in the eclipse project

copy native dll next to jar in this folder, and set native dependencies property of jar from build path

add jars to plugin class path from runtime tab in plugin.xml

Have a cup of coffee, and try to calm down.

XMLA, the opportunity that is slowly fading away

Ok, this will be short. XMLA, for those who have never heard of it, is XML for Analysis, a standard for connecting OLAP service providers to front ends like query builders, OLAP browsers etc. Why do we need it? Because monolithic solutions in OLAP domain raises the cost and decreases the flexibility of solutions, but interoperability in this domain seems to be going down. The XMLA council seems to be inactive for a long period of time, and XMLA home page is taken over by Simba technologies.

At the moment, there are quite a few solutions as OLAP front ends, and even less support XMLA, for the standard itself is usually not implemented to the full. This is bad news in general. I do not want to have to pick a vendor and a product set to get an end to end solution for OLAP. If some vendor with more power like MS or IBM can take over XMLA, we might see more benefit, otherwise I’ll have to work on a deeper analysis of the market to achive the type of freedom I want.

Oracle buys BEA, Sun buys MySql, and we get what?

Ok, this is all over the web now and a huge amount of discussions have began. These two important purchases mean different things for me. First of all; IF Oracle can manage to not to screw up assets of BEA, and keep it as a complementary line of products on top of its existing solutions, that’d be a good move. I have to say that I have never even been satisfied with any product of Oracle other than their databases. Their DB rocks and we all know it. It is “the” database that I’d be setting up if someone told me that they wanted the highest possible reliability and security.  Their solutions for upper layers however are plain unusable. This might sound harsh, but from the development environment to their middleware, Oracle has not done a good job for the last 4 or 5 years. Maybe it was because they bought second class solutions in the first place, or they were not successful in enhancing the solutions they’ve purchased, but looking at what Microsoft has done with MS Sql Server (which was originally a Sybase product) I can say that I’d prefer Oracle not to try to change anything they buy. BEA has a good set of products, their application server and development environments have been among the top rated solutions for the last few years in Java domain. So if Oracle leaves them alone, we might get some very attractive bundles with Oracle DBs

For the Sun purchases MySql news, I am more thrilled. I have used and benefited from free software (as in freedom of speech) a lot in the past, but the issue with various customers has always been the same. You get into a meeting, offer a solution that contains an open source DB or development environment or middleware, and you  get the exact same question everytime: “Who supports that?”. Customers are crazy about hearing a vendor name, a well known brand, whether or not they are going to buy support. They just want to know that some giant name is out there.  When Sun started selling support for PostgreSql on Solaris, I started using this argument, and the outcomes were shocking. When I said to people “PostgreSql is supported on Solaris by Sun Microsystems”, suddenly everybody was much more inclined to consider my suggestions. Even if we were talking about some configuration that is far from the one supported by Sun, people had the impression that I was talking about something that was worthy of Sun Microsystem’s support. It is some form of approval according to them.

And what is the benefit for open source/free software community? I’ve already seen a dozen arguments how corporate world is taking over freedom, but in my opinion, this is great. This is great since open source solutions will not be mature enough till they face the challenges of the enterprise level, and without a big name behind them, the doors of the enterprise is usually closed. When an open source solution can not get into an enterprise level setup, it can not be tested and modified for scalability and robustness, and also the necessary know how that will create the profits for open source based businesses will simply not accumulate. Take a look at Ruby on Rails for example. When you ask people for advice on scaling rails, the pointers you get are much less in number than the ones say for Java or .NET. The numbers are also low for professionals working on the technology, for no one can devote a significant amount of time to a technology when they are using another one to pay the bills.

So, if Sun starts selling a nice support package for MySql, I’ll get another good argument for meetings, the products will get more testing and deployment, and community around these products will get more expertise and know-how. I think I have quite positive feelings about this.

And once again: Oracle, “please” do not try to enhance BEA solutions, just sell them with your own products.