donderdag 29 mei 2008

The manycore shift


"The manycore shift is coming!" my colleague Jos Bredek keeps telling (harassing?) me about every other day. "What are you going to do about it?"
Even if you take into account that the journals and bloggers are hyping each other up, it is an important development which is coming nearer everyday. The fact that multi/manycore systems are becoming prominent cries for programmers who have the skills to take advantage of them. And these programmers need to have programming languages and tools to work with.
What does a bachelor student need to know about parallel programming? How would we teach them this subject? I don't have definite answers yet, but it's got my attention.


So in the past weeks I've seen some interesting material passing by. I'll share the best with you:

* The manycore shift, a general white paper by microsoft.

* Microsofts parallel extensions are something a developer can sink his teeth in. This blog post by Daniel Moth shows the concrete usage in .Net. Daniel Moth? Yes, he's the guy from the QCon ("I speak so fast, just download the video and play it at half speed.")

* So what's the Java world up to then? Under JSR166 mr Doug Lea is working on a parallel "fork-join" framework which might be included in Java 7. Some interesting links: an InfoQ article, a in-depth pdf and the homepage including the API.


My first impression is that .Nets Parallel.for(...) and Parallel.do(...) are really simple and concise compared to the Java stuff? I could teach that in about 5 minutes. But then again, I might not yet know enough about this material to make a real comparison...

maandag 26 mei 2008

Slideshare.net


As there are sharing sites for pictures, movieclips etc, it shouldn't be a surprise that there are sites for sharing your presentations.

www.slideshare.net is one of those and it's a nice source to browse occasionally. It gives you:
a) Inspiration. Looking at all those great slides inspires me to try and make mine better. Take a look at "Death by powerpoint" for example to learn about another way that bullets can kill people.
b) Information. A lot of IT-related slides appear online, sometimes even during the conference the presentation was given.

vrijdag 16 mei 2008

Keeping up with Joomla CMS

After the website of our chessclub broke down, it was my wonderful task to get it up and running again. It was quite a painful experience, but now that I'm (almost :) through I'll share the lessons learned.

1. Rates and functionalities of webhosting have changed dramatically over the years. Our old webhosting was ripping us of. We're now moving to a webhost which is 1/3 of the price and offers Joomla pre-installed.
2. It's best to keep the administrative side of your site up to date. Our domainname was still registered under the name of somebody who had left the board. Getting his written confirmation lost us some time, together with some confusion about what the procedure was.
3. Resurrecting the website locally from a database backup took quite some time. Try getting the installer of Joomla 1.0.10. That's not so easy. Here we are returning to the general problem with open source: the lack of accessible documentation.
4. The migration process of the database from 1.0.x to 1.5 was reasonably well described. (But I later ran into the problem that a table including data just went missing?? I copied it by hand.)
5. But the fact that templates are broken was not well described. To solve this a lot of piecing together of forumposts was needed.

So I learned it the hard way, but got there in the end. But even though Joomla is maybe the most popular CMS out there, I would be dissatisfied with the quality if it were a commercial product.
- domainname moving
- webhosting prices and facilities
- setting up local webserver with wamp/xamp
- installing Joomla, components, modules and templates
- migrating Joomla 1.0.10 to 1.5.3
- migrating Joomla templates to 1.5.3

woensdag 14 mei 2008

Assembla: an all-in-one software development environment


Version control is a Good Thing. But supplying our students with a centralized CVS-server resulted in a lot of overhead (creating accounts and repositories, changing permissions halfway when the projects start, etc) which is a Bad Thing. So I started looking for an online version control system that students could manage for themselves. The first couple I found were free for one user per repository, but not for multiple users.

But then I stumbled across http://www.assembla.com/. This site offers not only a free Subversion repository but includes it in an entire suite of tools including Trac and a wiki. I uploaded all the code from our exercises into SVN (which integrates with Eclipse) and force students to get the code from there. When the project starts in two weeks time I will instruct the students to use the wiki to document the requirements. So far, things are looking good.


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)