vrijdag 28 november 2008

Landelijk Architectuur Congres 2008

In case I didn't mention it, I'm currently working with the RDW for 2d/wk. The ultimate way to keep up is to return to the industry and do some actual work. The focus is on 'architecture' which is a really broad term. We're looking at introducing the subject in our curriculum. I'll blog about this some other time.

One of the first activities was to attend the Landelijke Architectuur Congres (crappy site). The focus of this congres is not so much on "software" architecture as it is on "enterprise/IT/information" architecture. I was a bit worried about grey haired pompous speakers giving abstract talks. This didn't turn out to be the case. It was a nice way to get introduced into the subjects, get to know the names, see the vendors and what they are vending. Although the crowd was different from a technical conference, it was diverse.

Some talks were too academic, some talks were a bit too obvious, some were badly disguised sales pitches and some were just right. I won't describe all the talks since there were a lot, but mention some highlights.

Daan Rijsenbrij voiced his opinions on architects and what they should be doing. There still isn't consensus on that. But after a few days at the RDW I can already support the statement that it's 80% talking, explaining, influencing, guiding, changing. A lot of "peoplework". He had hired a professional cartoonist to create some visualisations for him, something well worth considering if you have to make an important pitch.

Michael Widjaja: nothing really interesting about architecture, but we might want to pay some more attention to web 2.0 in our webprofile? Did you already know http://www.midomi.com/ ?

Harmen vd Berg: commercial demo of the Archimate language (in the tool Architect). Internationally there are a number of competing products for creating architecture models. But in the Netherlands Archimate is winning the battle. And since we got a Surf license I'll give a look and see if it might be interesting for my (technically inclined) students.

Frank Baldinger from the NL Architectuur Forum spoke about education and presented a book "Competences of IT Architects" which I'll receive in the mail. This might prove useful when thinking about architecture in our curriculum.

Tobias Kuipers: is it an idea to make architects responsible for the end quality of a project? It would at least result in more effort of the architect to get his architecture understood and used. A famous quote: "The street remains long after the houses have gone", or rephrased: "Concentrate on the lines, not on the boxes".

Olaf Zimmerman gave a nice demonstration of applied research. He has collected a large number of design decisions made in SOA projects and put them in a database. He then created a decision supporting wiki which can search the database. This created a 'mentoring' tool which proved more effective in supporting developers than an architecting document full of "must and shalls".

donderdag 13 november 2008

JFall 2008

Today I went to the Jfall. First a big thanks to the NLJUG for allowing me to take 35 of my students for free. I suspect a number of them skipped it due to illness, oversleeping and whatever reasons. They don’t know what they missed.

I started off with a talk by Marco Mulder from Xebia. He talked about a large project they have done for Prorail, using agile software development (Scrum) and a distributed development team (Netherlands and India). This of course involved some challenges which they solved nicely. I also learned a bit more about Scrum to complement what I know about eXtreme Programming.

Then there was a talk about Constraint Satisfaction Problem solving with Java by Nicolas van Hanxleden (Iprofs). Constraint Satisfaction Problems (CSP) are all about scheduling and optimisation and are typically unsolvable by a brute force approach. Since I studied these kinds of problems when I was in university, I was interested to hear if there is anything new. The first 75% of the presentation was largely familiar, although he did a good job explaining it. Nicolas then introduced the open source tool Cream which can be used to model and solve CSP’s. He gave a good demo in which he applied Cream to solving the N-queen problem.

Lunchtime! The handing out was a bit annoying just like at the JSpring. After getting up pretty early you don’t want to stand in a long line which is not moving. I’d like to challenge the NLJUG to improve the logistics of the lunch. That shouldn’t be too difficult. :-)

The keynote after lunch by Reginald Hutcherson (Sun) was amusing but not really informative. (Dude, simplify your slides). Two other Sun guys showed some fun demo’s of Java FX but nothing really challenging. The thing I might remember most is the throwing of the T-shirts into the crowd. But ok, maybe having some fun was all they wanted to achieve.

Immediately after that there was a talk about Lean Software Development by Marc Evers and Rob Westgeest. This also fit in nicely in my objective to complete my knowledge about agile software development methodologies. But I must note that the speakers emphasized that Lean is not a methodology but a set of principles, a certain mindset. What was new for me was the notion of measuring the worktime for a specific development cycle and comparing it to the total time before the product available to the business. In the example given they calculated the “efficiency” as 6%, all the other time going wasted to errors and (mainly) waiting. One of the key principles of Lean is to eliminate this “waste”. To do this they use other techniques from the production industry like applying “pull” instead of “push”. A lot of these ideas stem from Toyota car manufacturing. This talk was ok.

This time I decided to skip the last two talks and try my luck at a hands-on workshop on unittesting. This didn’t really work out however. After finally getting my laptop from the wardrobe and some installation trouble I was lagging too much behind on the assignment which I would have found quite challenging even if I started right from the beginning. The other participants were clearly having a good time, so no problem.

See you next year at the Jspring!

woensdag 5 november 2008

What would you do with €5000 ?

Ok, this question is a little bit different from "What would you do with a million euro's?" The point is I've been nominated for a prize called "de innoveer" (this doesn't really translate, meaning innovation and inno-feather in Dutch).

Our dean Henk Zwetsloot proposed me based on the work done on the software engineering curriculum and the way I keep up with it. There where 12 applications and I'm among the last 3 nominees. On the one hand I'm honoured, on the other hand I feel like I've "just done my job".

The prize is a piece of art and 5000 euro which can be used for ones own development. So I can't help but think about what I would do if I won. Here are some ideas:
* Attending a nice big congres like the QCon last year would be nice.
* A studytrip to the silicon valley or something similar to what the HBO-I did in the past.
* A studytrip to Australia to visit some universities and discuss the possibilities of exchange of lecturers.
* Getting a masters degree in computer science (I have one in math) is always on the back of my mind. But I'm afraid 5000 euro still wouldn't solve problems of sleep, time, family and energy. Maybe later...
Update: it wasn't meant to be, the competition was pretty good. But still, being among the last 3 was pretty cool.

Assembla update

I previously mentioned the site http://www.assembla.com as a free site which offers a complete software development tooling suite (Subversion, Trac, Wiki, ...). The main benefit for us is that the students can form their own projectgroups and administer their own version control. This relieves me and our system administration of a lot of grunt work.

In the mean time the site has gone to a (very reasonable) commercial model but they still support students for free. Recommended!

woensdag 29 oktober 2008

Was it any good?

A quick note about the events we've been to the last few weeks. Was it any good?

The NITE (Noordelijk IT Event, pronounce 'night') was not yet a great success. There weren't a lot of visitors, creating a bit of an awkward situation. Maybe next time a smaller venue would be better. The first talk was the most interesting for me. Elly de Jong of the police of Groningen talked about their research and development program. He showed some nice projects that I never heard about. Their GPS-based PDA application looked like the project my students do. These projects are happening here in Groningen! That's the effect the people behind NITE wanted to achieve.

The Achmea talk was ok, giving insight in the way such a big firm tries to handle their systems. The location at the top of the Achmea tower in Leeuwarden was especially nice. After sunset we could see the lighttower of Ameland.

Monday we had a guestlecture by Quintor on Continuous Integration. It was very well suited for our students, nice and technical. Maybe a bit heavy on the toolingside (just to give you an impression, the following tools were mentioned: ant, maven, JMX, bamboo, wiki/confluence, jira, clover, blazeds, alfresco, dbunit, hsql, spring, coberture, jcoverage, cactus, ...) but after you master the basics there's always a toolingstep to make.
But for the attentive listener there was also much of interest about agile development and working for regional companies. The students gave it a big thumbs up.

maandag 13 oktober 2008

A busy period

There's a busy period coming up for me and 'my' software engineering students.

First we had studentpresentations about Open Source-related subjects. To spice things up we had a number of experts from the NNO (http://www.nn-open.nl/) who asked critical questions and provided feedback. We all learned a lot more about Open Source, what it is and isn't.

This week there's the NITE congress (http://www.nite.nu/node/6) of which I will attend the wednesday. I have yet to find the time to look up what the programme exactly is... :-)

Thursday I'll take 30 students to Achmea for an evening programme on J2EE in the insurance business (http://www.quintor.nl/index.php/quintornieuws/16-okt-java-op-hoog-niveau.html). Quintor is also involved in that.

Later on Quintor (http://www.quintor.nl/) will also be giving a guestlecture at the Hanze about agile development with special focus on Continuous Integration.

And at the end of the quarter I'll be taking all of my students to the JFall (http://www.nljug.org/pages/events/content/jfall_2008/sessions/?template=showprogram.html&fs=1). Thanks in advance for the JFall organisation for making this possible. I'll post my selected programme later.

And between this events I'm also doing some other interesting stuff which I might get around to later.

donderdag 25 september 2008

Keep challenging yourself

A nice way to keep up is to try your hand at one of the countless online competitions. When looking some of these sites up for possible use in the classroom, I was pleased with http://ace.delos.com/usacogate , the trainingsite for the USA Computing Olympiad. Don't be deceived by the somewhat amateuristic look of the site and the abundance of cows. Once registered you can test your skills in algorithm programming on a large number of exercises ranging from easy to very difficult. Your solutions can be submitted and are automatically tested against a number of testcases. If you get it right the first time you get a nice compliment, but that only happened to me once :-)

Another link a got mentioned by Jos Bredek is http://www.hackquest.com. This site's layout also doesn't impress but the content seems ok. There you can take on 100 puzzles of 'hacking' yourself into webpages with unsecure Java applets, Javascript, etc. Jos has solved 30+ by now, a student already has 97!

donderdag 28 augustus 2008

The math-debate revisited

While on my bike to the Hanze after the summerbreak I was contemplating the math-debate that keeps going on in dutch education.

As you probably know the concept of "competency" has been leading in the HBO. We define a competency to be a combination of knowledge, skill and professional attitude.
In making the education "competency focussed" a lot of math that could not directly be linked to competencies was removed from the curricula. (This also solved the problems of too many students failing for these subjects. Of course the level of input from HAVO is a factor here, too.)

When it became clear that too much math had been removed the debate was on how we could align math with competencies. Most of the time the focus was on the knowledge-aspect of math and competencies.

The thought that struck me was that maybe we should be looking at the skill-part of the competencies. Why not look at math as training for skills like modeling, abstract reasoning and problem solving. An analogy (always risky): a basketballplayer lifts a lot of weights without complaining that he doesn't need to do that in the match. And the brain is our muscle.

I'll leave it at this and won't attempt to get chess into the curriculum. ;-) But maybe we could take a fresh look at the HBO-competencies with this in mind. There are some points where the level of abstract reasoning could be more specified (A3 - Scientific Application, A6 - Working problem directed)

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


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)

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.

vrijdag 28 maart 2008

What's the difference between DDD, TDD and BDD?

All three double D's are about how to approach your design. What drives you, how do you get started, what's your angle? How do you decide which classes to use? What are the dependencies, etc.

Domain Driven Design (DDD) focusses on the core model (the domain) and tries to keep other stuff like UI's and databases separate. You can google for the site and the Book from Evans. I'm not too convinced it offers much new, but maybe I'm influenced too much by the worst presentation of QCon (Filipe Rodrigues, better luck next time man). I also have a graduate which can't explain to me what the big deal is.

Test Driven Development (TDD) is the one I'm most familiar with from my XP classes. First code your JUnit test and then code your class to make it pass.

Behaviour Driven Development was new to me. I noticed they were talking about BDD in connection to Ruby (RSpec), but just stumbled across a nice page that explains the concept: http://dannorth.net/introducing-bdd. Even if you don't use BDD, it gives some really nice tips for TDD.

maandag 24 maart 2008

Head First

Some time ago O'Reilly came with a new series of books called "Head First xyz" with xyz being mostly about programming stuff (Java, Design Patterns, C#, ...). If you've looked at one of the books, you've seen they are different from the usual computer books. From the blurb:

"...Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep."

This sounds mumbo-jumbo, but it's worked out as original books with lots of pictures, puzzles, scribbles and exercises. (Check the website for some samples: http://www.headfirstlabs.com/)As I had been curious about whether they are any good, I picked one up about Javascript. About halfway through I think it's funny and activating. It contains the right mix of text and pictures, explanation and exercises. Maybe it'll grow old if you read too many of these books, but it probably won't hurt a student to add Head First Java to his BlueJ book.

One final thing that struck me is the conversational tone they use in the book. Apparently this has been researched as adding to the learning experience. This is exactly the way I've written my study material from the day I came in de Hanze. I probably have some talent... :-)
Update: I laid my hands on "Head first Design Patterns" the other day and can recommend that one too.

dinsdag 18 maart 2008

QCon short recap

So, what do we make of all the information that was poured over us the last days? What is the most important? Of course, we will need to investigate all this stuff further. But at first outlook, I would say:
  1. REST looks like an important new trend.
  2. Erlang might answer the need for more Concurrent Oriented programming languages.
  3. Java for enterprise applications is very much alive, also for real time systems.

DSL's keeping turning up at conferences like these, but I don't really see what's the big deal. But maybe I'm missing some point.
Architecture is maturing, but there's no silver bullet.
Agile is maturing nicely, thank you.
Ruby on Rails fits nicely in their niche.
Domain Driven Development is a new term but nothing really new.

QCon Friday

And then it was Friday. Fatique was setting in, but we were determined to take it to the end. There were some really interesting tracks today.

The day started off with Randy Shoup talking about the architecture behind eBay. This was really architecture on the highest level. The amount of data/transactions/servers etc that ebay has is huge. An impressive talk, the slides are warmly recommended.

After that BBC talked about there architecture to bring media (video) to their users. A nice talk (especially since they filled in for Twitter at the last moment) but they had the disadvantage of being preceded by eBay which was hard to match.

At the same time Bart was at a presentation about Haskell in the "programming languages of the future" track. That track covered a number of programming languages which might (or might not) be the next big thing, such as Scala, F# and Erlang. Saillant point is that Haskell has been around for a long time and was removed from our curriculum some 5 years ago. Bart said that the presentation about Haskell by some professor was the best he had seen at QCon. "Pure theatre."

After that we went to the presentation about Erlang, a new programming language that's especially suited for use with concurrency. The language is hot on the fashionlists and might become very relevant with the rise of multicore systems. Take a look at the slides when they are available. One to watch. Joe Armstrong (called "the nutty professor" by another participant) also wrote a book about it.

After that the long awaited Rails 2.0 track, which after one minute I knew wasn't really what I wanted. Dr Nic explained at length the changes from Rails 1.2.6 to 2.0.1, not really what a beginner is looking for. Still, there was something to be learnt about IDE's and participating in open source.

After that Jan scored a polo-shirt at JavaBlackBelt (missing the first prize, 10 books at the O'Reilly stand by just an inch) and we went back home. The delay wasn't too bad this time.

donderdag 13 maart 2008


Wat te denken van
Living in the cloud
Deep Zoom

Quotes of the day

Here some nice quotes of the speakers of today and yesterday:

"It's binding here, it's binding there, it's binding everywhere." (Mike Laulty)
"Powershell just rocks." (Eric Nelson)
"We now can make usefull data in the cloud." (Jonathan Trevor)
"Democracies do not always pick the right candidate."(David Anderson)
"Problems you are having, hmm? Making roles explicit you must." (Udi -Yoda- Dahan)
"London is a nice city." (Filipe Rodrigues)

QCon Thursday (1)

The day started off with a lecture by another famous name, Kent Beck, on developments in Agile. A good speaker, very American. It's all about accountability and transparency. IT and business are moving closer to eachother, IT has to be just as accountable as the business is used to be.

The next lecture was by Stefan Tilkov on REST and RESTful webapplications. As this was a new concept to me, I decided to listen in. A good talk, although I didn't completely understand it in one go. It seems REST is a set of 5 principles which you can apply when developing webapplications. This gives you a lot of technical possibilities. But as far as I can see it's an alternative to webservices. An important new trend already and we still haven't finished with the previous one.

Pete Goodcliffe talked about two systems. One with bad design and one with good. A bit of a standard talk, but he was entertaining and it's nice to see some points again. But Bart thought he could have done it better.

Giles Colborne tried to define the term op 'Simplicity' in User Interfaces. According to him it's not the same as usability. A bit dull, nothing special. But he did mention a number of "red flags" that made me think about the DOP immediately.

Rod Johnson (author of a famous J2EE book) talked about innovation in J2EE. At first impression, he came across as a annoying, stubborn American with a Texan drawl. Maybe that's what he is. But he knew his subject really well and brought a lot of interesting analogies to the subject. The slides are warmly recommended.

The last talk about Domain Driven Design is so bad that I can update the blog. A brazilian dude in very bad english who talks about stuff we all already know since we started our education. Pity, as there is a lot to be told about DDD.

woensdag 12 maart 2008

QCon Wednesday (3)

A quick note from the QCon. We got really busy, from 9:00 AM till 19.30 PM there were a lot of presentations in a lot of tracks. Although some of the presentations turn out to be poor, Bart and I are having a good time and learning a lot of new stuff.

Erich Gamma – How Eclipse changed my views on software development
A good keynote by a famous name about the development of Eclipse with points about architecture, open source, process etc. At the end he demonstrated Jazz, a really (really) big environment for large distributed software development. It’s looks interesting, alas no open source.

Building smart client applications with Visual Studio .Net 2008
Daniel Moth demonstrated some interesting new features of Visual Studio. He did this at such a record speed that, to understand it, the public will have to download the videos from his blog and play them at half speed. Still, it’s nice to see what can be done nowadays.

Agile mashups
A talk about how teams in the field don’t follow the XP/DSDM/Scrum-book, but combine practices that work for them. Nothing really new, but a nice confirmation from the speaker who has a lot of contacts in the field. The room is packed, testifying to the continuing interest in agile methodologies. By the way, a ‘Ziffer’ is a Zero Feature Iteration. By the way, the percentage of women in the audience is significantly higher than in our students. Maybe it's just a dutch problem?

Real Time Java for banking applications
I couldn’t see the screen and couldn’t understand the speaker with his french (?) accent. When my neighbour started snoring, I threw in the towel. But this RTJS might be interesting to explore sometime for our TI-students.

From betting to gaming to Tradefair
About the the challenges that Betfair (a betting site) faces and how they took their expertise of transaction processing to start a new company Tradefair in the financial domain. This was all very interesting but when the juicy part came up, they didn’t want to show their cards. So just how they solved those interesting problems wasn’t disclosed.

Liquidity Hub
These people faced about the same problems as the previous ones. They had to achieve something like 20.000 transactions *per second* with a latency of maximum 100ms. They achieved this using Java! The key was Weblogic Real Time, a alternative JVM implementation with real time guarantees.

Does my bus look big in this?
A keynote by Martin Fowler himself and another guy. It was funny and fastpaced to keep us awake. We had a good laugh, but the clou was lost on me. Don't use an Enterprise Service Bus, just use the web (?)

Please note that all the slides will become available on the QCon site. I have a lot more notes about sites to visit and technologies to check, but I won’t put them all here.

Quotes of the day:
(Erich Gamma about releasing closed software to the open source community) “It’s like a christmas present. You have to include the batteries, otherwise it’s no fun.”
(Standard message about evacuating the building when the building gets on fire) “You MUST take care when crossing the road.”

QCon Wednesday (2)

Still Bart:

What the hell is a DSL?
Programming languages are realy cool. With them, you can make your hardware actually do something, like visit a website, create spreadsheet with the latests sale-data or write on your book.
Most programming languages serve a general purpose: they are meant to be usable in all sorts of situation. Using Java, for example, you can a simple webbrowser for your iPhone or an offline dictionary that only runs on your specific machine. All these radically different kinds of problems can be solved using the same kind of solution: the processing power of a single programming language.
There are, however, situations in which you don't realy need all that processing power. Sometimes you just need to transform an xml-tree into another xml-tree, or make a more or less difficult formula in your spreadsheet. In these kind of situations, all the processing power of a general purpose language, and more specifically the vast number of functions, add-ons, quicks and possibilities that come with them, prove to be a burden for the programmer working on that specific domain. Hence the viability of Domain Specific Languages.
Though Domain Specific Languages do not have the general expression power of general purpose languages, in most cases they do actually have more expressive power within their domain, due in part to the fact that they serve a very specific goal. In general, they enable the programmer who has more or less extensive knowledge of the domain under consideration to automate simple task within that domain. Since the DSL is created to be using in that domain, it can use abbreviations and idioms that its users will be familiar with.
The borderline between general purpose language and DSL is, however, not as strict as some might be led to believe. For example, XSLT was initially conveived as a DSL that only transformed one xml-stream into another one. But through the years, this language has grown to include filesystem interaction and string-manipulation. On the other hand, Visual Basic for Applications (VBA) was conceived as a simple programming language that should enable users of Microsoft Office to create simple applications on top of for example Word and Excel. However, most uses of VBA nowaday is concentrated on automating specific tasks within these applications, thus rendering VBA more like an DSL than Microsoft would have liked.

Windows as a Web Platform
Eric Nelson
People who know me are aware of the fact that I do not particularly love graphical interfaces. I much rather have the power of the command-line directly at my finger-tips that all stuff tagged away behind obscure windows and drop-dopwn lists. On the other hand, I do know that GUI's do have their pros and that a lot of people could not live without them.
The Microsoft web server, IIS, has this kind of GUI, which enables the system administrator to administate the web-server. I have used the previous version of IIS, version 6, for some time for my work, and I thought it realy was a terible thing to use. Unclear views, obscure locations of specific settings and a need to restart after the most simple change. Therefore, I was very interested in what mister Nelson had to tell us about the new version of IIS, version 7.
Mister Nelson is a very driven spreaker who keeps interesting (and funny) contact with his audience, who does not try to demonstrate more than is actually interesting at that moment, and who can make his story up as he goed along (which proves that he knows what he is talking about).
IIS 7 provides a much clearer GUI which can be accustumed to the wants and needs of the sysadmin. But this new version is more than just window-dressing: the whole pipe-line has been refactored, which is spcifically usefull for those of us creating .net-applications. In previous versions, .net was just another extension of IIS, which entailed the need for code-duplication (e.g. for authentication) and all sorts of specific tweaking. Now it is more of less an integral part of the webserver, which means that the management of .net-applications is much easier.
Also, driven by the market, Microsoft has decided to be much more php-frienly than it was in previous versions of IIS. Using IIS7 you can invoke php directly via the cgi. It even comes with a friendly php-editor. This way, according to mister Nelson, after they have decided to use php, people do not automatically use mysql, apache and, ultimately, linux. They now have the very viable option to use php and mssql and IIS and windows. Who knows...
I was rather positive about the interface and posibilities of IIS7, but the best part is comes with a good command-line: CmdApp.

Building Rich Internet Applications
Mike Taulty - Microsoft
There are two words missing in the title of the this lecture, namely 'with' and 'Silverlight'. As you might or might not know, Microsoft is regarding the succes of Adobe (before: Macromedia) Flash with envious eyes, and is slowly, bur surely, trying to get some piece of the cake of rich internet applications. As is comman practice within the Redmond Company, instead of being innovative and trying out new stuff, they simply take some existing formats and ideas and pretend it's their own. The same applies for Silverlight, which is basically a new version of SVG (which they have called XAML) and some kind of new shell around Visual Studio. Voilà Silverlight 2.0.
But let us be fair. There are some cool things that one can do using Silverlight that are hard or even impossible to do with Flash. Dynamically creating xml-files, interpreting those at run-time as the description of a visual objects and doing all kind of stuff with them is kind of nifty. During the talk, however, I just couldn't stop thinking that people who would want to do this kind of stuff would no doubt already be using Flash for some time, so why would they switch to Silverlight at this moment?
As a matter of fact, the speaker gave me the impression that he more or less shared my views. The lecture can be seen as consisting of two parts: the first part filled with explaining XAML, the second part demonstrating the way in which the different technologies operate together to create richt internet applications. In the first part, Mike gave a lot of examples each of which he ended with the comment that it was not very stunning or interesting. The second part took far too long to remain interesting. I think it is a bit like Microsoft, to want to show everything on your first encounter.

QCon Wednesday

A few notes from Bart Barnard (no pictures, his phonebattery was out):

Building blocks for true internet applications (Jess Barr - Amazon.com)
Most programmers or students use lack of hardware-resources as one of the reasons their project did not meet the expectations the teachers (or themselves) initially had of it. If we had more computing power, they say, we could have made this or that feature working, we could have some more work done in the little time that was available for the project, or the query would not have taken as long as it does now.
Jeff Barr from Amazon.com has put the lie to these kinds of arguments. Being, in his own words, a real web-service evangelist, he introduced the gathering to the other Amazon.com, the one that at the moment has three data-centers (two in the US, one in Ireland) that enable everybody to get as much computing-power as they need on the fly, for a very little amount of money. Amazon has created web-services that take care of all the muck (as the other guy from Amazon, Jeff Bezos, used to call it) of programming, such as load-balancing, initializing servers and services and that kind of more mundane work. Once registered, users can fire up servers using a FireFox-extension and ssh to them immediately. If needs be, another server can be fired up using the exact configuration of the first one.
This kind of 'working in the cloud' appears to become the new way of programming and managing data. There is no longer any need to have all the hardware or the resources available locally; you put data 'in the cloud' (the Amazon data-center) and access it when and where you need it..

A word about catering
Though it is obvious that we are here to learn be get inspired, when one pays twothousand euros to attend a conges in London, I think it is not too much to ask to have a nice, enjoyable lunch in the afternoon-break. Perhaps I am not the most low-maintainance-person when it comes to food, but I think that professional caterars should be able to come up with something more creative than rice and beans when you ask for a non-meat luncheon. As a desert, I decided to have some kind of apple-cake, which was so juicy that I was unable to cut it with the side of my fork (as Wilhelm II used to do, but the side of his fork was sharpened especially for that purpose). But the knives where no longer provided at that time. I did not mind much, as the part of the cake I did manage to eat was not particullarly tasteful.
Also, I understand the need for networking during the lunch-break; one of the goals of this kind of conferences is networking, is it not (no, I am not talking about TCP/IP or IPv6, but of people exchanging business-cards). So during lunch we do not supply chairs and tables, so that the attendees are forced to walk about and talk to each other. The result? People sitting on benches near windows (as I am doing now) or even on the ground, not realy interacting with newly-met, but checking their mail, chatting via their mobile, or entering text for the blog of the conference. I think the network-need is better served with the drinks and tapas this evening, so please let me have my lunch in a decent manner.

dinsdag 11 maart 2008

QCon Tuesday

Alarmclock on 4.30 AM, bus at 5.30 AM, plane at … 8.10 AM! Two hours delay :( The picture is me at the airport, please note the red timestamp in the right bottom corner.
The rest of the day was a bit of disappointment. Further delays at schiphol ensured we missed the entire morning session. Somehow our preferred tutorials were scheduled on Monday (!?). So no Ruby, we'll catch up on that later. We joined another Domain Specific Languages (DSL) tutorial. But having missed the morning session this went way over my head. But it seemed a rather academic subject to me on which the PhD’s are having a field day. But Bart understood it better, so we’ll have to await his explanation of the material.

Some quotes I noted down:
“… the abstract meta superclass…”
“… if you build THAT than we can automate EVERYTHING (drooling)”
“… so we have shown that DSL’s are sometimes really useful…”
Normal dinner at an Italian restaurant: 65 pounds. Welcome to Londen. ;-)

Getting started with Rails is easy. Or isn’t it?

Ruby is a programming (scripting) language that is becoming popular lately. As a programming language it is said to be very elegant, but its API isn’t quite as extensive as Java’s yet. At the moment I have two graduates at Logica looking at the possibilities of building (cross-platform) applications in Ruby.
But the real popularity of Ruby comes from the webapplication framework “Ruby on Rails” or just Rails. This framework is said to give you 10x more productivity. When you have mastered the subject, that is.

In some ways those Ruby & Rails guys are pretty good at promoting their stuff. Looking at the amount of tutorials, blogs, websites and tracks on QCon you can’t escape the feeling that this is an important development. But in other ways they suffer from the same problems that plaque the open source world. To get started with a technology, you already have to be quite an expert on all sorts of tools and products. Documentation isn’t really userfriendly or up-to-date and when the inevitable problems arise you have to put in quite some work to get the right answers. If you’re lucky Google will hit some forum with a readymade answer. But if you’re not you’re on your own. Another quibble I have is that the available documentation often isn’t structured clearly. If the open source world wants to interest the less technological savvy, they have to lower those barriers. But we all know that developing is much more fun than writing accessible documentation. So who will do it? (But there *is* an incentive. If you’re tutorial/blog/… is so good that it attracts a lot of visitors, you can make money on the ads.)

So yesterday I tried to prepare myself for the QCon tutorials by getting started with some Ruby on Rails. This wasn’t a picknick. As it turns out Rails 2.0 was released in December 2007, breaking every old tutorial there is. Now they could mention this clearly somewhere, but they didn’t. So to save you the time, I’ll give you course I eventually followed.

1. Rails environment (Windows): download and install the all-in-one distribution InstantRails.
2. You can check your installation by testing the pre-installed ‘cookbook’ and ‘typo’ applications. The cookbook works for me, but typo gives several errors that I couldn’t solve quickly with the help of Google.
3. The readme suggests starting with the popular ‘cookbook’ tutorial. It’s a funny read but … this tutorial turns out to be broken for this latest distribution of Rails. And you only find that out after you’ve invested some time, ran into problems and started searching the web.
4. After some searching I ended up with the tutorial at http://fairleads.blogspot.com/2007/12/rails-20-and-scaffolding-step-by-step.html . This is hailed as the best tutorial at the moment. It does the job and results in a working example. But it only scratches the surface.
5. If you want to know more, the best way to go is to install a previous version of Rails. In this way you can tap into the more extensive older tutorials. You could also buy a book, but there’s not so much on 2.0 yet.

Let’s see what the experts at QCon have to say on the subject.

vrijdag 7 maart 2008


(Op verzoek geswitcht naar Engels)

The program for JSpring is up: http://www.nljug.org/pages/events/content/jspring_2008/sessions/?template=showprogram.html&fs=1

Just reading the abstracts and looking up the stuff you don't know is a nice way to keep up. (Do you know what 'Kanban' is?)

My preliminary selection is a nice mix of subjects:

  1. Grid computing
  2. xText/DSL's
  3. RAP/RCP
  4. Up-to-database
  5. How to survive a code review
  6. MDA with Eclipse

Meet you there?

woensdag 5 maart 2008

QCon 2008

Nog een paar dagen en dan is het zover. Collega Bart Barnard en ik gaan naar het QCon congres 2008 in London (http://qcon.infoq.com/london/conference/). Op het programma staan grote namen (Fowler, Beck, Gamma) en interessante onderwerpen op het gebied van software development. "The rise of Ruby", "Architectures you've always wondered about", "Domain Specific Languages in practice" zijn slechts enkele van de tracks.

Voor de tutorials op dinsdag hebben we besloten dat Bart naar de Domain Specific Languages gaat waar Fowler himself aanbeden kan worden. Ondergetekende volgt de Ruby-tutorial. Het programma voor de andere dagen zullen we on the fly opstellen.

Verder zijn we natuurlijk reuze benieuwd naar het geek-gehalte en of je je met een windows laptop wel kunt vertonen. Wat bijvoorbeeld te denken van de volgende quote: "Imagine a dim-lit cave with beer, snacks, and power for your laptop. Add Ruby geeks, Ruby experts, and curious newcomers. ... This geek night will be centered around Ruby, your laptops and you."

Mocht je nog vragen hebben over bepaalde onderwerpen, stuur een mailtje naar j.w.balje@pl.hanze.nl en we zullen kijken of we wat voor je kunnen doen.