Archive for the 'Software' Category

Spring Framework for Handheld devices

Samstag, Mai 23rd, 2009

springframework me

Being able to develop handheld applications with the spring approach, using techniques like dependency injection also for the JavaMe environment, looks promising.

I’m curious if and when approaches like this gain more momentum, it could be important for the development of mobile applications. I can imagine that this and Spring Roo together could make a powerful duo for the mobile app world.

JAX WS with maven2

Samstag, Mai 23rd, 2009

jaxws wsdl helloworld

I have to fiddle around with webservices during my work, we use JAX WS for generating the glue code. I wanted to create a HelloWorld example (again), only to realize that everything is already online (again).

I want to combine maven and JAX-WS. I’ve found the web page for Jax WS here, and more importantly, an example pom which contains everything you need for jaxws here.

One problem of the average Bob D. Veloper is that information about a specific problem may be available, but instead of solving your specific problem it raises again more questions. For example, the referenced pom above uses the antrun plugin to download a wsdl, which is no problem at all – if you look at the code and uncomment the lines where the wsdl is retrieved from the web. In order to make it work you should consider to remove the comment in the antrun configuration section.

Another problem is that you should know how to invoke maven properly in order to generate your artifacts. As always, it is easier as I thought initially, a simple

mvn package

or

mvn compile

first downloads the wsdl and secondly creates your webservice clients in the target directory.

As you surely know, it is best practice to generate the glue code from the wsdl; by placing the classes in the target directory, you are typically not tempted to change them (for whatever reason). As always, modify the source, not the artifacts. DRY you know.

Anyway, with a few commands you’ll get a ready to go implementation for an arbitrary webservice, both client and server implementation is generated. The only thing you now have to do is to fill out parameters and hope for the best.

There are many websites which provide an api for their services – if a wsdl is available, you are ready to go.

Another acronym popping up “recently” (first draft 2005 ;)   is WADL. Oh man.

O3D

Samstag, Mai 9th, 2009

….

O3D is an open-source JavaScript API for creating interactive 3D graphics applications that run in a browser window—games, ads, 3D model viewers, product demos, virtual worlds.

….

At last! A major player like google tries to resurrect the idea of 3D in the web. Aeons ago I did some VRMLing which was a very fustrating experience; (for me, not my clients ;) ) Of course it supported javascript then too. It was a nightmare.

Anyway, maybe O3D does it. Several companies tried to establish a de facto standard for Web and 3D. I have the impression that none succeeded really.

At least google shows again a strong commitment to push the browser as platform and the importance of their Javascript engine which empowers Chome.

What is still missing (maybe someone can correct me here) is a standard API for audio. This will then eliminate Flash and establish even more Javascript as a systems language. In the meantime, it is still necessary to do some tricks like wrapping flash to acheive sound effects, native support would be great.

Spring Roo

Donnerstag, Mai 7th, 2009

Wordle: ROO

Recently SpringSource released an interesting … hm … what is it?

Roo?

In short, its a bootstrapping device for new projects and a code generator for common tasks, tailored for the spring stack.

(and surely much more I’m currently not aware of)

As far as I see, it is a missing link for Spring development. Most developers are very lazy and the barrier to plunge into new technologies is quite high if the given introductory example  doesn’t work out of the box.  Another problem domain tackled by ROO is the boring stuff which has to be done frequently – like adding Controllers, Views to some web project, creating domain objects and so on.

Everybody has his tricks, ranging from keyboard shortcuts to code templates. Roo looks like a powerful tool designed for boring tasks. Or rather, to avoid boring tasks.

Ok folks, stop writing abstractions which reach the end of their lifecycle before the next homemade nullpointer, don’t hassle with your favorite code generator – Let others do the dirty work. Concentrate on your business.

Scaffolding, prototyping, being productive … what else do you want from an average developer, always underpaid? Of course a tool which does “everything” for you.

ROO is something like that, well almost. It won’t get paid (that is your job) and it is even opensource!

It even generates some weired AspectJ stuff!, well don’t mind about that. Aspect oriented programming doesn’t get the momentum it should, maybe because programmers are just too dumb for using it?

Part of the problem is that an average Java developer not only has to master the language itself, which got considerably more complex since the addition of generics, but even more has to integrate lots of libraries in order to get to a simple CRUD application. The freedom of choice is not a bad thing per se, it can lead to considerable fustration sometimes on the other hand.

Roo is clearly aimed at the ‘experienced’ hacker who remembers the time of command line applications, seems like they’ve invested some thought into what developers really need and really like. At first glance, skimming through readme and examples, it looks quite promising. By exploiting its scripting functionalities, we’ll soon see many Meta Meta Meta Generators. I’m curious.

Alors, go and try it yourself.

Disclaimer: Using ROO won’t save you from not needing to understand the involved technologies.

Freeplane – maven patch

Freitag, Januar 9th, 2009

Freeplane is a fork of freemind.

Here is an eclipse workspace (zipped) to jumpstart in with maven. Very rough but works for me!