Friday, December 4, 2009

Playing with RAP

Last week I found some time to play around with Eclipse RAP, some first steps were easy to take. I then got eager and tried to run a bigger RCP application on RAP which worked out to not to work. It was that some things from the current RCP platform we use extensivly do not work on RAP (for e.g. StyledLabelProvider). I did not spent too much time on it, and it seems to be I good advice I read somewhere else, if you want to develop on RAP and RCP start with RAP and then port tp RCP.

I then started of with a prototype for a new app, that will possibly run on RAP next year and I really had some fun with it. I used the styling examples projects to do some styling on my app, integrated my own logo and some css. Was all really easy and I got a web app running in little time.

Tried to follow the instructions on deployment then, which turned out to be a little complicated. Tooling is missing some things there currently. Had to take a count of manual steps to finally get a war archive that I could sent to a friend for testing. Surely I missed to put my plugin.xml in which caused some headache as the deployed app showed all bundles in the osgi console but surely refused to work.

I like the idea of having the Eclipse concepts and the platform alongside for web app development. Our app will be running whith not too heavy load, so that common concern doesn't matter to me. I wonder if there are experiences with RAP applications under heavy load. I still have to figure out whats the best way to have a cross user application model (most of out data will be shared across the users). As I'm so used to it I guess I will go for hibernate, which will turn out be be interesting on where to place the EntityManager Sessions to get all out of Lazy loading inside the platform.

Thursday, September 10, 2009

Java is still cool to me

These days I read a lot about Scala and other new languages. I didn't get in too deep with these things, although they appear sometimes nice to me. But some days ago I once again dreamed about coding in Java ( I might not be a very clean developer, I think I suffer still from my C64 style coding when I started off with software development). When I read about whats coming up with Java7 I'm sometimes a little disappointed, I truly did expect some more of the cool features that have been discussed. But we have very nice free tools availably and there is great software around, though I think software development still needs prgamatic evolution. But over all I love coding in Java and I hope I can do that for some years to come. What do you think, do we need revolution or evolution ?

Saturday, January 24, 2009

XMPP in Client Server Application

Recently I stumbled across some readings on XMPP usage scenarios that divert from pure Instant messaging. I started some experimenting with it and I think it's really great for client-server apps as Mango is. I always had some headache with server to client notifications as RMI (and most other more modern service options) has no callback option.

I had some trouble setting up OpenFire to run embedded in my Server environment. But after two days of hazzle its finally working now. I did not want to have a standalone solution, because it would make overall installation of my server too complicated. Now it comes up with the main server process and serves the xmpp communication.

Now one of the first things I wanted to see was who's online which was quite easy after I found out that Rosters need to be registered with the JID and not anly the user name. Makes sense, but I needed some time to get it.

Then I cut of and ugly polling mechanisms for Reminder notification and replaced it with a central job on the server side that sends an xmpp Message to the client whenever a notification is available. Thats a great step forward in overall architecture to me, as simple as it looks in the first place. The clients don't need any polling any more, as they get notified whenever needed.

I tried to solve this before with a JMS approach, but XMPP looks like its much more up to the problem. The documentation I found on the Smack API is lacking many details. Next step may be to step up to ECF, but I will see if I implement some new feauters first :)

Jupyter Kernel for Java9