Tuesday, May 12, 2009

ORM - good or bad ?

I am digging into Hibernate / JPA stuff. I understand the difficulty to have two paradigms in one software ( relational vs object oriented). But still I wonder. Are these ORM frameworks really helping or are they creating more difficulties than they solve ?

What I am sure is that most of the problem they solve should not be solved. For example database independence. That's important just because vendors don't care about standards. Who cares about SQL:2003 - not talking 2008. So we add one extra layer just to hide the absence of standardization. One may argue that's common to most standards. Well may be but I think here it not that justified.

Any way, I find very unpleasing to see so little integration of tools. Again Java stuff, is not providing common sense solution to every day solutions. Why do we have to research and go through a painful learning curve for achieving something pretty easy with VB.

So lets continue searching... agility, elegance, flexibility, power, openness and productivity !

Monday, May 11, 2009

Netbeans & Spring - refactoring not easy as it should be

Well, may be you think it is caused by poor design... But I wanted to change the way a few objects were named modify the packaging structure in a soon to be released application. Refactoring with Netbeans is usually easy as the IDE changes properly references for you. Well it does in the Java code but not in the Spring XML definition !

Too bad and now hours of checking ahead !

Wednesday, May 06, 2009

SpringSource support pricing - nothing free - like free lunch?

Interesting article about SpringSource support pricing http://java.dzone.com/articles/the-cost-springsource-enterpri

Obviously, the company has to get revenues from something but it is good to remember that some free stuff can finally cost more than their commercial equivalent products.

Also some comments of the article about the source repository and the possibility to get fixes without a support contract are relatively pertinent.

I say relatively because my experience is that even with subscription and support contracts, small companies have difficulties to get their problem recognized by some vendors.

My feeling however is that SpringSource plays the classical commercial Java game - meaning the pricing is not clearly displayed and replaced by "contact sales".

Again this is complicated for small companies and makes comparison very difficult. So watch before to take a technical decision and don't forget that the relation with the vendor also matters.

Tuesday, May 05, 2009

SpringSource acquires Hyperic

SpringSource acquires hyperic. It is astonishing to see how well SpringSource played these last two years. While integrating various other products and frameworks SpringSource mastered the art of making a consistent Java alternative enterprise offering. I spent little time on monitoring and scaling, but I think it make sense.

SpringSource is kind of safest (specially considering the uncertain Oracle-SUN strategy), efficient way of doing lean good Java apps. I think its business model should be studied in depth. All their products are pure open source. Great documentation is provided (good affordable documentation is a key for community acceptance). So training, conference and expertise is their single financing at this stage. It is funny to see how SUN could never build a decent software service stream of revenues while alternate vendors did...

I hope they wille give it a shot in the RIA dance. Or do we have to consider that BlazeDS (Flex intergation) is their way to RIA ?

Monday, May 04, 2009

Wings - RIA - creation in Java or XML based language

I am quoting here the Wings framework web site.
"Popular frameworks like Sun JSF and Apache Struts rely on a heavy mix of different technologies like Java, JSP, XML & Tag libs. This implies that the association between the different media have to be maintained manually to be always in sync. Errors between these assoication implies bad suprises during runtime while pure Java-based frameworks like Wings can leverage of the compilers consistency checks."

I agree. Most XML based stuff are deferring checks at runtime. By the way this is my single regret with the Spring container and IOC. Fortunately the Spring container parses and validates the XML directive up-front when the application context is created so most errors can be easily checked at start-up.

Wings

One more GUI Ajax RIA framework for Java. http://wingsframework.org. One good point compared to ZK - real open source with a lgpl license.

It becomes more and more complicated to choose one :-) Seriously I think this storm of gui frameworks is a clear indication of an issue. Java lacks a clear path for building confortable interface (dummy HTML is not good for real application building).

Sunday, May 03, 2009

Apache Pivot - What is it ?

So I spent a bit of time this week-end with Apache Pivot (release 1.1).

It is a completely new GUI toolkit / framework built on top of Java2D. So it is not Swing, nor native browser controls.

This puts it in my opinion in the category of LRTW software (Lets Reinvent The Wheels). As mentioned in my first post, rendition is far from perfect.

The provided elements are good for layouts and containers but lack for me a good rich text editor - I think to get Java really on the desktop and shining for little businesses we need a programmable Java written office suite.

The interface can be built in Java or using an XML Based language: WTKX. May be this is more comfortable for some designers... Event handling plumbing seems to be in Java only - there is an empty scripting section in the tutorial so may be there are possibilities to declare event handler.

Pivot also includes utilities for data-binding (the stuff we miss in Java since years and you could find in VB or Delphi since day 0) and JSON (data exchange over HTTP), internationalization is also covered (I did not check it).

So my first opinion: this seems to be an open Java based Flex a like solution.

Unfortunately the deployment of the Java plugin is not comparable to Flash and the rendition if far from what you would get with native controls -e.g with Ajax or GWT.

Event being handled locally, so Pivot falls short compared to for example ZK / Echo and I think Canoo. In the demo I could not see an example with multiple windows / MDI like interface.

The tutorial is still incomplete. My statement : good open source = good documentation (potentially charge it but please write it if you want to gain quick acceptance).

What's more I could not find an indication of which problems Pivot is supposed to solve.

At this stage I cannot imagine to use it for anything. The project is currently 'incubated'. Except if the project can jump very quickly in term of quality and server based event handling, I don't think it will make long run.

Saturday, May 02, 2009

Apache Pivot

So I am having a look at Apache Pivot 1.1. I started the demo app in my browser (IE 7 - I know, I know...) just using the applet scroll bar and the entire interface went scratched.

I cannot elaborate more at this time. But Swing is a conceptually nice, complicated and frequently disappointing. Java applications suffer very often of poor renditions problems ?

In fact Pivot is not Swing based (it may looks like Swing for developpers) but is built on Java2D. But I am already sure that it exhibits similar behaviors...

Friday, May 01, 2009

ROO ? From SpringSource

One more stuff on my 'to evaluate list'. I must say that the Spring lightweight container is one of the most pleasant encounter I did with Java stuff these last two years.
My statement : right to the point. Good design, good documentation absolutely non obstructive, this makes programmers productive, designs elegant and solutions flexible...

This is the perfect example of how much innovation in the Java landscape is powered more by third parties than by the official JCP/JSR and owner of the language (SUN - now Oracle).

SpringSource also acquired the company behind Groovy and Grails. Nice language and probably easier to learn than Ruby On Rails (for a Java programmer) and with I think a much better (in fact perfect) integration with Java.

Well it seems that SpringSource continues its walk to ease programmer productivity with a project called 'ROO'. The name is not definitive it seems to be centered around Maven and provide command lines wizard to assemble application. Release is expected for July 2009. Wait and see.

Thursday, April 30, 2009

Adding Velocity tools to a velocity context

I could not find a basic example on how to add the Velocity tools library (in my case the EscapeTool) so I can use these helping routinged in my templates.

So here is mine:

org.apache.velocity.tools.generic.EscapeTool escTool = new org.apache.velocity.tools.generic.EscapeTool();

velocityContext.put("esc",escTool);

you can then call in your templates $esc.html($text_to_be_escaped)

I hope it helps

http://velocity.apache.org

Tuesday, April 28, 2009

MySQL Limit - how to simulate with Microsoft SQL Server 2005

Much less strategic that previous post, I am quicly cooking a primitive web interface for which I need pagination.

In MySQL the limit added to the select helps verymuch retrieving a block of rows then the next one for the next page etc

What about MS Sqlserver ? You may start with TOP (takes the first rows) or set rowlimit.

But how to start at a given row ?

I found a few desperately incorrect proposals for this (but at least one pointed me to the ranking functions) , here is my best shot:

"with ordtab as (select p_users_id , ROW_NUMBER() OVER (order by p_users_id) as rownumber from ph_users) select * from ordtab where rownumber >= 10 and rownumber <= 20"

Will give you the equivalement of limit 10,20.

The solution is based on what is in the Microsoft manual, too bad we don't have time to read that much manuals, however it is still much less elegant than the MySQL attribute (which is right to the point)...

Tuesday, April 21, 2009

Apache Pivot

A small Dzone article about Pivot. Pivot is an incubating project from Apache to make Swing based RIA application.
http://java.dzone.com/announcements/pivot-11

Also the link to Pivot (not that much doc, so better read the Dzone article before).

Monday, April 20, 2009

GlassFish

Continuing thinking on this Oracle-Sun deal, I don't think GlassFish has that much future anymore...

It is too early to make good prediction. Some analyst see here a thread to Microsoft (I don't think so) others think that Oracle will drop the hardware line, few think they will valorize the software line (I don't think so either).

Wait and see. In my readings, there is however a consensus... not good for open source...I agree.

Orcale & Sun - applications to disk ?

Quoting the Sun site:
"The acquisition of Sun transforms the IT industry, combining best-in-class enterprise software and mission-critical computing systems. Oracle will be the only company that can engineer an integrated system – applications to disk – where all the pieces fit and work together so customers do not have to do it themselves. Our customers benefit as their systems integration costs go down while system performance, reliability and security go up."

Like it or not, clearly that's a vision. The One of a monolithic vendor...

Oracle to acquire SUN

Sun and Oracle today announced a definitive agreement for Oracle to acquire Sun for $9.50 per share in cash. The Sun Board of Directors has unanimously approved the transaction. It is anticipated to close this summer.

Is it good or bad ? I never though to such a deal. So this is my humble reactions on very hot news.

Oracle will now become a kind of new IBM, concentrating hardware and software. Not sure that's indicating a sign toward openess...

Today, I received one mail from Sun : "Need more scalability for your MySQL application". With the key message being : we own it and we know better how to run it on our boxes ! Hm, if we extend this to the new portfolio, not sure that's so pleasant for all other hardware vendors proposing Oracle software...

What for Java? I don't think Oracle did very great contributions to the community, however I must admit that they are great at charging for anything (the main difference with Sun) . Will Java continue to be free ? Oracle is used to charge developer tools. Time to check the NetBeans licenses and ownership ?

And what about MySQL? Oracle is buying its single open source competitor. Isn't that a monopoly ? Will innovation continue on this DB Engine? It is funny to see Sun being acquired while they just finished building their application stack... oh bad is live when all you did is good but too late...

My last thinking. Sun managed Java poorly but on the other side this commercial weakness has been sustaining a relatively open ecosystem. Now with Oracle and IBM face to face, the major Java love triangle is over and the fight is almost guaranteed. I am betting on competition by so called innovation that will result in incompatibilities... Not good.

With Java and Lamp (MySQL) at stake, the winner might be... Microsoft !

Sunday, April 19, 2009

Download Sless 11 - Novell organisation at its best

I am preparing an upgrade of our main prod server to the new Suse Linux Enterprise Server 11. The latest, greatest, etc stuff from Novell Inc (pardon me,my excuse, I was a Suse users years ago).

After a (somehow slightly complicated) password recovery I could finally start downloading my ISO images.

Great Novell sent me an e-mail "Thank you for trying SUSE Linux Enterprise Server 10 from Novell."

Cool ,they forgot the mention concerning Netware 2.15 !

My point, e-business is not more complicated than business - but not less...

Friday, April 17, 2009

About Java, market, technology and attitude

I read this morning a small article from Timothy M. O'Brien
http://broadcast.oreilly.com/2009/04/an-up-and-down-week-for-java.html
The article highlights the relation between Sun open/not so open behavior and its current market situation. Also, I agree entirely on the desperate JavaFX approach.
Would buying Sun be good to IBM ? If stock continues to drop, probably. Would it be good for Java: I think yes. IBM has been a fair player in the open-source community since several year and is good to listen to market and make money with services.

Yesterday, I saw a smart and interesting article "Meet Sun Software Engineering Manager Masood Mortazavi, Part 2: Java DB, Project Models, and More".
This is plenty of smart thinking, and I am sure Sun is full of these very talented people. Considering the situation, I will pardon the self-congratulating style of the article. However I was damned shocked by the following paragraph :

"SC: What are the biggest issues that companies have getting the most out of Java technology-based applications?

Mortazavi: I would point to problems related to a mishmash of technologies, the lack of ability to select properly, and a relative increase in nonstandard, de-facto programming platforms."

Well. I cannot agree. First, what is the sense of choosing and "open" solution to stick to a single vendor ?

Second, Sun pushed developers to these so called 'mishmash' by regularly delivering technologies not matching business expectations. Remember the first releases without JDBC, crappy AWT, poor Swing performance, have you saw there was no reporting solutions built-in, still no clean integration with desktop under Windows... In fact, Java has been saved by these 'mismatch' like (to cite a few) Eclipse, Tomcat, Spring, Hibernate,JasperReports, Struts etc

We must understand that a lot of mishmashers just tried to fill the gaps... and they continue and continue. Why is Sun then endorsing Ruby , Groovy... Why are web applications more often built with PHP than Java...

I will one more quote this article "Don't forget that billions of dollars of revenue have been generated and millions of people have been employed because someone at Sun Microsystems invented Java,..."

That's correct, but I am sure we could have done much more money if Sun started to listen more to the market and the developers needs. The Java platform remains a very attractive but not so productive platform with a difficult learning stage (again the mentioned article is worth reading). Look at how much shrink wrapped software are written in Java... How much solutions for small business... well we missed a lot of business opportunities because of blind smart people...


Thursday, April 16, 2009

UltraLigt Client - Canoo

Still searching for an easy way to build these Java apps quicly and smoothly.
I will surely put this on in my list : http://www.canoo.com

This is a pure Java toolkit/framework. Client side runs as normal Java app (including web start) or as an applet. All the logic (event handling) is on the server.

An interesting compromise I think.

Wednesday, April 15, 2009

JavaFX ... Sun did it again

I am currently reviewing various architectures / frameworks etc for building (more – if possible) easily database backed applications.

Ideally we would like to leverage or Java knowledge (we did a lot with Java but little WEB/GUI stuff).

The idea of being able to deploy within a browser or outside is of course appealing.
So I had a look at JavaFX.

I quickly spotted the next link… http://blogs.sun.com/tor/entry/javafx_text_component . Waouw the next generation bablabla will not use text right now ! Cool ! “Forget about any business apps” for now could be on the web site banner. Know a business database apps without a single text edit?

So announcing so much, and providing so little, that reminds me how Java itself was launched (without proper GUI, no database API, even writing a file was an issue). Yes they did it again.

This is not only a technical exasperation, I cannot catch this strange blind marketing attitude !

Java is relatively standard for business software but the client side has to rely on a crappy mix of HTML/JavaScript to look a bit more responsive and stay easy to deploy?

Wouldn’t it be smart from SUN to capitalize on this market needs instead of trying to compete with Adobe Flash with an under capable product?

The latest Java runtime is much less deployed than Flash, the platform seems less capable and imply learning from scratch a new (said to be easy to learn) language.

Why would Flash developers move to this FX stuff ?
Why would Java developers move to this FX stuff ?

Well no clear replies and at this stage I give up on that one…

Sunday, May 04, 2008

Zoho

I discovered recently Zoho (www.zoho.com), a desktop application service provider. The tools are neat and expanding. You can do the classical office jobs such as word processing, spread-sheet and presentation, a mail app is still in beta and I haven't tried their database application yet.

There are also business apps coming: CRM and invoicing. The business model is not advertising or marketing based (I applause), basic usage is free while heavy / professional usage may be charged.

Globally it is a nice set of tools. In my opinion the tag-based filling system is interesting, yet it is difficult to see all type of document related to let say a project or a customer. Also I could not find an easy way to include a spread-sheet in a text - except may be like an HTML iframe. I admit, I am a novice user of their system.

A much more strategic issue is concerning technical integration and freedom. We miss a global model and a good bunch of standards to rent applications from multiple vendors and mix them to achieve an IT system.

Having said that, the worth part is in the terms and conditions. Well, read and think about it... Prices may change, free things may become costy and no warranty is made about your data, availability of services etc.

This is in my opinion, a key problem of this kind of business (the following it is not specifically related to Zoho). We have here an emerging industry rejecting most forms of liability, warranty and responsibility!

Obviously a remote ASP cannot guarantee that my ISP will do its job, but aren't they responsible if they garbage my data? Or may be should they think about charging for such extra-liability. Obviously the bottom line is made by insurance companies, only these can help creating professional ASP a reality. The model should be similar to life insurance and air transportation: a basic fee built in your ticket and more can be purchased if the customer wants to do so.

As I wait for that, I would recommend these services to implement at least a clean backup system (some ISP propose this for databases), so a user can retrieve all its data in a somehow common format.