Eclipse Callisto

As some of you might know, there is a new version of eclipse out. Well together with that version came some other eclipse projects. One of them was BIRT (Business Intelligence And Reporting Tools) well I think it’s really amazing. If you don’t believe me checkout this screencast and tell me I’m wrong!! Actually funny as at the moment we are doing a Crystal Reports integration and I had mentioned Jasper Reports here (an java opensource reporting tool), guess they have a strong competitor on the market. Let’s hope they push eachother to the limits and the community will only benefit from it!! To bad we still are working here with Crystal Reports, believe me I’m trying to convert everybody to opensource.

UPDATE
my bad, callisto is the name of all the projects combined 🙂
END UPDATE

Totally unrelated, I’ve been very very busy the last couple of weeks. I’m trying to get my needed capital to start my own sweet BVBA or better EVBA. On saturday I hope to get the approval for renting a nice 2 bedroom appartment in Leuven. If everything goes well, I’ll be having a lot more spare time in a few months and I can finally can help some projects I like but don’t satisfy my needs at the moment. I maybe sound stupid but I always get the feeling I’m not doing enough for the oss, I’m spreading it everywhere I come, I submit bugreports, now and then a small patch nothing fancy yet. I even set myself a goal “for every company I’ll work for, I have to at least introduce 1 opensource project”. But I hope to have achieved much more in a year from now, probably one of the first projects I’m going to take a look at is Diva. If you don’t know Diva go check it out!!

Continuous Integration

As the first deployment has gone to it’s dot O pains I had some time to setup a nice continious integration environment. As the application I redesigned had been working for a couple of years, and mine probably will 2 continious integration is almost a must.

In the past I already had read some books on this matter, and in those cases they mostly opted for cruiscontrol , an opensource framework (ffcourse). So yesterday I did the setup, except setting up the automatic checkout from CVS everything wen’t flawless. Except some usecases that weren’t up to date with the data in the db. (I know, I can use dbunit for doing that, but don’t think that’s necessary).

Today I’ll be fixing my testcases, as I only ran the fast ones for a while (as the whole testsuite took much to long). Well with this in place I can sleep more safely 🙂 Now subscribe to the RSS feed and off we go! I forgot how nice it is to have an environmnt in your back that checks everything you ever wrote. So for you peepz who don’t know what I’m talking about, go read up on it!!!

PS as On my work I’m on a win machine, I’m giving flock a go, this is blogged using flock so i’m rather interested in the result 🙂

Blogged with Flock

A screenshot :

cruisecontrol

Strength of opensource

Friday I had a performance problem at work. We were using hibernate to do all the DAO for us, so no Select statements. We optimized a view for faster retrieval of the data, but it still took the application a long time to retrieve a large resultset, a small resultset went fast. Okay let’s do a small testsetup to very this issue, in the small testcase (1 mapping onto the same view) it was fast. Hmm bizar, okay let’s try it back in the application. Again slow, hmmm very odd!?

Okay what now, go to #hibernate on freenode and ask their. They told me to check with a profiler. So I did, hmm even more bizar. There wasn’t any extra cpu performance or memory usage. Wait, what’s this. The normal jdbc drops his cpu for a very short time (waiting for the database response) while the problem use case waits 10 seconds longer. Hmmm, okay how do we solve this. Well if you download Hibernate you get the source for free.

Okay put the source into our project and start debugging. After some time, I came to the conclusion that in our application the PreparedStatement.executeQuery() that just returns the Oracle cursor takes +10 seconds while in the testcase it only takes 1 second or less. So if we enable all the hibernate mappings something in the Oracle jdbc driver goes insane. Well for now I retrieved the java Connection object and perform the query myself. But I sure hope the guys over at hibernate or oracle can tell me what the problem is. Just imagine I had to debug this in a closed source environment, I’ld prolly still be waiting for them to create a use case like ours. 🙂

GO OSS!!!! 😀

togetherJ

Here at work they payed quite a bit of money for Together J. This is an uml environment based on eclipse. They want it to reverse engineer some of my implementations. I already made a sequence diagram using Dia before the project started, this took me about half an our. Now that the code is finished you would expect that this would go much faster as Together J has a reverse enginering feature. Let me say that for removing,moving and unlinking of my diagram took me more than an hour thusfar and I’m not yet finished. Just wanted to do a shoutout that I really really dislike TogetherJ, this kind of tools give java the name that it is slow. While it’s actually not (okay, the startup of the vm has to be included in each app, but once started it really isn’t slow. Really, BUT don’t use it in places where you shouldn’t. Modelling in my eyes is a very graphic intensive thingy,and java isn’t there yet, maybe if they used java3D (may they even use it, don’t know the status of java3D). If you really want to do this you have 2 options imho, do it the mono way then, create a c or c++ object that can do native drawing and create some bindings for it, but then you get the problem of java not being fast going outside the jvm OR just fix the freaking drawing in java and give it a performance boost. Maybe this is already faster in the next editions of j2se, maybe it isn’t really that slow in 2d, but then it’s even worse that would mean that the people over at Borland can’t program and I find that hard to believe!!!

I’m trying to persuade my boss here to use pvanhoof his generator and build some reverse enginering features into it. Let’s hope he goes for it, I did say his code was (L)GPL so all features would have to be commited back to the code.

audio vs video

A couple a days ago I was talking to freax about doing a vidcast. why, well it sounded great but also because I want to give something back to the community. I had the idea of doing a podcast about programming, not the things you see on most of the show but actually going rather deep into it.
Some of the ideas about subjects I head were ie doing a podcast on hibernate, so not just telling you what it is but showing you in an IDE an example and building a real world example I would be using on my own website/intranet.
Another Idea was to build an application using a Service Oriented Architecture. And then show some of the benefits that came from doing it this way.
I wanted freax to join and tell his stories about using design patterns in C. Showing some of the neat tricks he used in his day to day work.

While I was explaining this to him, he told me someone had asked him to write a book about design patterns in C. Now a book sounds great, and looks good on your CV, but then I told him, imagine Robert Love had not written his book on kernel programming, but made an iptv show on it. Okay it would have taken several hours but you can do so much more with visual things and movement than static content.

Today I read werners blog, he had a nice comparison chart in there of how much you learn from several mediums. Now in this chart audio/video are the same, but for me that’s certainly not true. My mind more easily stores visual information than audio information.

I’m still thinking about doing such an iptv show, but haven’t got the details figured out yet. I think the release time would be every month or so. But If I start this I want to have a schedule planned out for at least 10 episodes. I’m still thinking about good subjects. Java,Mono and C are already in there, but what precise subject I haven’t figured out yet.

A good reason to switch to java 1.5 (tiger)

I was just reading something about jboss serialization and in the requirements was jdk1.5 and a link. So curious as I am, I went to look ath the link, it was a bug from sun’s implementation of the jvm. I read it, and was really amazed.

read it yourself and be amazed!

It made me wonder, I almost always develop in vm languages and You know the meaning of all the words and how they influence your program but if actually your just dependent of the vm you are running on. If that has a bug, your app 2 has a bug (if your out of luck).

So why do I use it:

Why, well because that’s what I learned and I can develop the fastest in them because of the nice intellisense of the IDE’s :$ And because I like the OO principles off course, okay I could use C++ to, but sorry at the moment there’s not so much marker for C++ developpers as there is for C# and java devs.

doing client appz

In my day job, I mostly do enterprise java applications. Now I don’t know why, but the most enterprise java jobs I’ve done are all web based. Almost always using the MVC design pattern.

In my spare time, I also write appz both client and web applications. Because I know the most important design patterns, and I know how to implement them in a webapp, it’s rather easy to do a webapp. But for client appz I was always puzzled.

Let me give an example, in the webapp you have certain states where you can store objects that you access. You have the pageContext to store objects that should be only available for the lifetime of that page, request is from you receive the request till you flush your response,your session, as long as the user stays connected,…

But how do you do this in a client app? You only have 1 state, at least in the default appz, I think there maybe some out there where you have more, but lets forget about them.

Here are some design patters for the client (blog by J Aaron) , I’ve done MVC in client programs but not the way he describes them, I’m surely gonna do the next project using one of the described patterns, and the next will start this eveing :), forgot to make an applicatoin for somebody.

Hey I’m a pattern freak 2 🙂 (how many discussion we’ve already got about patterns, it’s really uncountable!) Check out his latest blogs, you’ll see what I mean 😉

content management / knowledge tree

At the moment I’m using kris his way to take notes (docbook style), and I’m using cvs to keep track of them (and also the versioning is actually nice). But because I also have to make Open Office documents (for offers,SLA,invoices,…) my cvs is getting poluted with binary stuff (I know, open office is actually xml, but the .odt file is a zip with the xml in, I’m really nog going to take it out and update it manually!!)

I always wanted to have a good content managent, let me rephrase that, document management system. But I never found one I liked. They were almost always web based and had no integration with the os itself. Well I think I may have found a project that does exactly what I want. its called jlibrary and I’m going to give it a go tonight. It’s based on the eclipse framework, so it’s platform independent but with the gui of the desktop your using.

So let’s hope it’s exactly what I hope, if so. I’ll also be putting all my knowledge documents in there, and start using it as a knowledge tree also. I know there are a lot of people out there looking for a good knowledge tree, well maybe this will fit your needs? I’m not sure yet, but I assume they work with a local cache, or I hope so, otherwise I’ve found the next thing I’m going to patch, shouldn’t be all to difficult.