Categories
Development

JavaZone 2009 over

So the big event for Java geeks in Oslo, JavaZone, is over. I had a blast as always, and a little less people. Moving the overflow area helped a lot. The less people was a conscious choice I’ve been told, and I wouldn’t really mind even fewer. But hey, I guess there’s some economics that has to work too.

My company, Capgemini was present as usual, and the bright girls and guys did an excellent job of tweeting and blogging from the conference. If you know norwegian check out our twitter stream and the technology blog.

We also had two full feature talks, and I was really satisfied with how they went. Always something to change, but over all very satisfied. The topics were (sorry only Norwegian slides):

  • Smidig Utrulling (Agile deployment) – Slides
  • Rules engine vs. Domain logic – Slides

For the Smidig Utrulling talk I spent a lot of time creating code and examples. They contain some simplified Maven setup and a Java program to do deployment from the Maven repo. Check it out at http://github.com/anderssv/agile-deploy/tree/master . Documentation is scarce as always, but let me know if I can make something better. And feel free to use.

The videos will be available later, but if you want to see the ones that are available (of others, some english speakers) you can check them out at http://tcs.java.no . Tandberg delivered the video equipment and it seems like they are doing a hell of a job for the community. Check out the videos, there’s a lot of good talks there.

Now for some vacation, see you. 🙂

Categories
Development

Java migrations tools

Wow, it’s been a while. If you’re interested in good links follow me on Twitter: http://twitter.com/anderssv . I usually update there these days.

My talk on “Agile deployment” got accepted for JavaZone this year! I’m extremely happy, but a bit scared too. 🙂 I’ll be talking about rolling out changes in a controlled manner, and one of the things that are usually neglected in this scenario is the database side. I’ll cover stuff like packaging and deploy of the application too, but that’s probably the area where I know the least. The database side of things are really sort of my expertise.

I have written some blog posts on this already, and in relation to the talk and things at work I did a quick search for Java migration tools. DBDeploy I have used earlier, but there are now a couple of other contenders. Here’s my list so far of tools that work on sql deltas that can be checked into SCM:

  • DBDeploy – Tried, few features but works well. Ant based.
  • DbMaintain – Probably has the most features. Ant based.
  • c5-db-migration – Interesting alternative, similar to DBDeploy. Maven based.
  • scala-migrations – Based on the Ruby on Rails migrations. Interesting take.
  • migrate4j – Similar to Scala Migrations, but implemented in Java.
  • Bering – Similar to Scala Migrations, and looks a lot like Migrate4J

I’ll definitely be looking into DbMaintain and c5-db-migration soon. DbMaintain looks promising, or I migh just contribute to DBDeploy some features. I’ll let you know how it went. 🙂

(updated with scala-migrations, bering and migrate4j after first post)

Categories
Development

Disconnected architecture

I was reading an interview with Renzo Piano in this fridays issue of D2. He is one of the most revered architects of our time and is responsible for many great buildings, amongst them the Pompidou centre in Paris which was his first big break through. He is known for his innovative ideas, but also his very good technical and functional execution of the designs. He was interviewed in connection with the Tjuvholmen project in Oslo, and one of the quotes was just spot on (my translation):

My fundamental reason has it’s origins in my builder background. To me, architecture is a craft. You can’t separate the idea of a building from the execution of it, even though a lot of architects act like it. This has been catastrophic for architecture. – Renzo Piano

In the software world there seems to be a notion that you can draw the architecture, and then let someone else design the details. Because it is based on high level ideas and sometimes faulty assumptions it becomes a resistance for building a good solution, in stead of enabling a solid foundation. Stop separating the architecture from execution, and make sure it is something that is flexible and evolves as execution moves forward. In other words: Architects need to take part in the execution to see the constraints the architecture imposes, and see new opportunities for the architecture to evolve into.

I’m not going to go into that rant now, that’s content for another post, but that also means that the architecture must be evolvable. And less code is more flexible than a lot of code. Strangely enough most architectural constraints tend to lead to more code, not less. 🙂