Brian Goetz and David Holmes went through the new mechanisms in Java 5 for doing parallell programs. We do a lot of threading in our applications, and we definately need to look at these new mechanisms.
One concrete example is that we always add a custom field “stop” for all Runnables, while there is an existing flag “interrupted” we should use.
Another useful feature is the ability to make specific read or write locks to allow many reader but only one writer at a time on some specified data.
The practitioner’s reports were very interresting this year.
First one out was an Israeli team describing how they annotated code with XML to be able to plan and track changes. It was OK but looked a bit cluttered.
The second report was about how moving a team from product based organization to Product Line organization saved them lots and lots of time, effort and money. It was very much like my own experiences, but they had used a standard tool for this, while I have always made a custom build system for this. I will try to get the name of the tool they used.
The third report was from Bekk in Norway, and explained how a team had added the finding, testing and implementation of security flaws early in their releases. The identified “Misuse Stories” at the same tim the User Stories were planned. They then used Selenium to reproduce the flaw before implementing a fix.
All in all a very good session.
This days keynote was a presentation of Fortress, a new programming language by Sun that targets mathematicians using Fortran today.
Fortress introduces many interresting ideas, most importantly the idea to minimize the concepts the compiler needs to know, and providing a good way to extend both syntax and semantics of the language.
I have now added the ability to add pictures to blogs, and I’ll put all the pictures I’ve taken on the events they are taken from.
Full round-trip for adding pictures to the application: 30 minutes.
The morning was spent listening to a great keynote on animism and the relationship between Aristotle’s ideas on poetry and modern technology, like sensor networks.
Following the keynote was a panel on ORM mapping that peeked my interrest in object databases, so I’ll definately have a look at db4o and others.
After lunch I attended my first DesignFest with the assignment to design a tracking system for Squash Ratings, and it was a very interresting experience. Most of the time was spent getting to know the other participants, building a common language, and understanding the problem domain. We got a class diagram, a sequence diagram, asumptions, design decisions, and the main algorithm done, but I suspect we could have implemented the whole application using Rails in shorter time than it took to design it :)
In the evening there was a tribute to John Vlisides. There was food! and a panel by the remaining GoF gyus. As always it was interresting to meet the people behind the book s I have read and put what they have written in a better context.
My second day at OOPSLA 2006 was spent in the Building Informative Workspaces workshop. There were several interresting people there, including Dave Thomas, and Alistair Cockburn dropped by also.
After introduction, there was a short presentation to set the scope of the workshop followed by one story by each of the participant on a related topic.
A lot of focus in the workshop was on distributed teams, which is a common problem, and the solutions suggested were all electronic, mostly wiki and skype variants.
We gathered a lot of examples and these will be available at http://informativeworkspaces.com/
All-in-all, this was my second workshop, and I am very satisfied with it.
This Blog application was made during the two breaks in the workshop today.
Iteration 0 included setup of development environment, generation of an application skeleton, and deployment to development, test, and production environment. 15 minutes, and the server is in Norway :)
Iteration 1 added the Blog domain object and scaffold for it. Also included is the database schema change using Rails Migrations. Again deployment to production. 15 minutes.
Iteration 2 added layout and localization. 20 minutes.
Having just finished my first ever OOPSLA Workshop, I must say it was very good. I met a lot of good people with both implementation experience and research projects.
The workshop consisted of a dozen 15 minute presentation of different projects both commercial and academic, and then two demos and discussions on two topics.
Most interresting of the demos was the one of SunSPOTs. It is still not commercially available, but it will be as soon as Sun can create a business unit for it :)
The discussions were interresting, but did not produce anything tangible enought for practical use, yet.
It is clear that there are several different categories of sensor networks, and that the different categories do not share the same solution space. One of the discussions were about wether applications will use specialized or general purpose devices, and it was very clear that it depend very much on the economics of the project. Large quantities suggess that cheaper devices are more important than development price, but if the capabilities change over time or the device needs to process more on its own, ie. in offline situations, a general purpose device may be better. Also, a general purpose device may give better time to market since production time for new specialized hardware is considerable.
Arriving in Portland, Oregon at 10:50 in the morning, the day before the conference has been much better than arriving in the middle of the night like I did last year.
I’m staying at the DoubleTree Hilton hotell, a bit old, but both the people and rooms are nice.
The Oregon Conference center is just 5 minutes walk away from the hotell, and it’s a pleasant stroll in the nice weather. We registered for the conference and inspected the conference center earlier today, and the conference looks very well organized.
This promises to be a good conference.