maandag 21 april 2008

JSPring (2)

Vincent OostindiĆ«'s Up-to-database from Ordina was about databases and how you could develop them using the same practices as you use for coding. How do you put them in source control, automatically build and test them, use continuous integration, migrate changes etc etc. He knew his stuff very well and discussed the current status of open source tools in this area. I won’t be using this soon, but it’s good to know that it can be done easily nowadays.

Mark van Holsteijn's Hoe overleef ik een code review? talked about code reviews and code quality. As a lecturer this is of course a subject close to me. He discussed his experiences reviewing code and how to define metrics and how to use them. We also conducted a quick code review on two pieces of code. One good and one bad as it turned out, both could have been written by students ;-) The good code turned out to be sourcecode of Tomcat, the other one was anonimized. Mark provided some pointers to literature, metrics and tooling.

The “graveyard shift” was done by Jos Warmer from Ordina. After the talk titled “Pragmatic MDA: Domain Specific Languages with Eclipse” I was totally confused. I had expected something about MDA with PIMs and PSMs like Remco Poelarends of ICT Embedded explained us some time ago. Instead Jos Warmer discussed the entire openArchitectureWare tooling suite (including xText) for building DSL’s. This al sounded very abstract, meta level stuff, not nearly as concrete as the second talk about xText. While answering questions however, it turned out that Ordina is using DSL’s in their software factories and that they are using them for code generation. Ordina has 18 months experience using DSL’s in their .Net factory (having built 4) and they are finishing their first one in Java. It gives Ordina some 20% saving on time per function point and a standardized way of working.
Luckily I had a chance to discuss my confusion with Meinte Boersma afterwards. He helped me cut away some of the smokescreen. As I understood it:
1) MDA is the term as used by OMG. This approach includes UML modeling and the PIM/PSM approach Remco Poelarends talked about. The tool Entreprise Architect belongs to this approach.
2) There is a movement of people who think the OMG-approach doesn’t really work, they have coined the term “Pragmatic MDA”. That includes about anything where some sort of modeling and code generation is involved.
3) The “MDA with DSL” approach is to a) first create a DSL, then to b) model something textual or graphical using the DSL, and then to c) generate code from your model.
4) The earlier example of the contract with the electricity company created a DSL that a business person of the electicity company could use to model his business rules.
5) Ordina has modelled their specific domain which is software development. Ordina has created DSL’s based upon their reference architectures to support their developers. A developer could (for example) have a DSL for the task of modeling a business domain. After using this DSL the developer can generate the domain code. This is not a standardized available approach to software development but is proprietary by Ordina.

I understand a bit more about this subject now but I don’t see our students working with this stuff right yet. When the opportunity presents itself to see the Microsoft side of this (Avenade has a lecture) I will look into that too. But then I’ll give a rest for a while.

Concluding I can say it was a good day. I wouldn’t want to trade it with the two ladies on the train who went to Deepak Chopra’s “enlightenment of the soul” (or something like that).

vrijdag 18 april 2008

A circular crossreferencing type of pointing hyperlink (or something)


My coverage of the QCon conference on this blog has been noticed by the organizers. In their summary of the event they refer to the blog and quote it 10 times! So now I'll be referring to them again, read the take away points here: http://www.infoq.com/articles/qconlondon-2008-summary

woensdag 16 april 2008

JSpring (1)


Sitting in the train back from the Jspring is a good time to write some notes about the day. Let me start by saying that it was an interesting day and the level of talks matched that of QCon. If you make a “value for money” comparison Jspring is even more attractive as you only pay the NLJUG contibution (and students even less).

I skipped the keynote due to travel time. Colleague Boelens wasn’t really impressed with it: “some kind of demo show with a guy singing songs”. My first session was Grid computing with Gridgain by Jos Dirksen and Marcel Soute from Atos. A good concrete talk about how easy it is to set up a grid and compute some task with Gridgain. Grid computing was once considered academic, but I can see students doing this in 1 hour. They gave some examples and a demonstration of cracking a MD5 hash. Their preparation of demos could be improved.

After that Jeroen Benckhuijsen, Meinte Boersma from Atos did xText: DSL’s made easy. They explained the use of the tool xText from openArchitectureWare and like the first presenatation gave a good demonstration. They used the example of a contract with an electricity company with all sorts of special rules. At QCon I also followed some DSL-stuff, but couldn’t really understand a) how it worked, and b) what the big deal was. Now I think I got it, but that it’s not a really big deal. It’s useful for some specific purposes. (But do read on about the last session in the second part of this article.)

In the early days of the specializations at our institute I have had to explain to the management several times what the differences would be between the specializations Software Engineering and Web Application Development. Thus I am keen to follow any trend that desktop applications and webapplications are converging. This was the topic when Rob Schellhorn from Finalist talked about Rich Ajax Platform: Eclipse Rich Client Platform applicaties in een nieuw jasje. It turns out that converting an Eclipse RCP application to a rich Ajax webapplication is very simple, but Eclipse RCP client applications are of course a special class of client applications. They are built upon the Eclipse framework. There are also some differences in usage between desktop apps and webapps that you have to take into account. Still, the resulting webapp looked really neat with all kinds of widgets, drag and drop, etc.
(to be continued)

woensdag 9 april 2008

Java BlackBelt



At the QCon I learned about the site http://www.javablackbelt.com/ . I even scored a poloshirt at their stand. It's a site where you can test your java knowledge in a series of exams. As you pass exams you gain points and get belts. After the first few exams you have to contribute yourself by commenting, editing or supplying new questions. With these contributions you gain points that you can use to 'pay' for the next exam.

Warning 1: These are not easy exams. You need to have a lot of detailed knowledge. Especially for students it might be frightening to see that there are so many corners and special cases in Java they were never told about. This might put you off, but once you get the knack of it, you will learn a lot. You can see it as a free alternative (or good training) for Sun's certification programme.

Warning 2: This site is very addictive! I'm limiting myself to a few attempts per week, otherwise it would take too much time. At this point I have my orange belt en will work towards the green one.