Archive for the ‘JAOO Århus 2009’ Category

So now we’re all smart enough to code in Haskell

Tuesday, October 6th, 2009

Tuesday morning, Simon Peyton-Jones held the not very enviable position as “I’ll try to wake up a bunch of tired, hung-over nerds”. And although he himself felt like he was tethered to a pole, acting as the sacrificial goat in some kind of bizarre developer ritual, speaking for myself and many others, I’m sure, I can say: Boy, did he wake us up!

The talk was of the kind that makes my rather naïve brain think it’s suddenly grown extremely clever, all of a sudden being able to grasp complicated subjects all by its own. And that’s the magic of a truly brilliant speaker, working his miracles by catalyzing thought rather than just dragging the audience through slide after slide filled with correct facts.

The discussion after the talk was centered around the question: will enough people be smart enough to learn to code in Haskell, and is the benefits large enough compared to traditional OOP. Not surprisingly, no clear answer was given, but the talk sure did – once again – open my eyes to the fact that my day-to-day languages might one day allow me to write code with a much higher level of expressiveness.

Returning to the question of my naïvité, I like to keep it at a level where I’m not really allowing myself to know the true answer to the question of whether I or Simon Peyton-Jones were the cleverer. What I know is that surely I was the one that learnt the most.

Now all I hope for is that JAOO 2010 will bring me Simon Peyton-Jones explaining what a monad is – if any single person in the world is able to teach me, he must be the one.

Two-timer Doubles Back on The Big Blue

Tuesday, October 6th, 2009
Where are you from?
I was born in Strassbourg, but now live in Vancouver in Canada.
Where do you do your daily work?
Most of the time I’m at the university in Vancouver, where I’m a professor.
You haven’t been a professor for that many years. What made you take the jump from commercial software development to the university
Academia is my retirement position, or my hobby, you might say. I worked at Rational for a lot of years, but left it shortly after IBM bought Rational.
Such a move is not all that unusual – Barry Boehm did the same thing. Actually, I wasn’t really sure that a position at the university was what I wanted, but I’ve known Barry for a long time, and he was the guy who encouraged me to go to academia.
Have you been to JAOO before?
No, it’s my first time. I do maybe 3 or 4 conferences a year. I’m not so keen on going as an attendee, I like to organize workshops and tutorials instead. Used to go systemically to OOPSLA, ICSE, doing one of them each year, but I haven’t been there for 2 or 3 years.
I’ve been part of the Agile Conference organizing committee for last 2-3 years. It works a little bit like JAOO, with speakers coming following their own proposals, but also by invitation. We don’t use formal papers, though – with the exception with the one track reserved for academic research talks.
As an academic, have you got any thoughts about going to a fairly commercial conference like JAOO?
I don’t see myself as opposed to commercial conferences, given that I’ve been in the commercial industry for quite some years. At Rational, we even had our own conference.
You are known for the invention of RUP 4+1, but now you are into this whole agile architecture/documentation thing. I must admit, personally I’ve never been a big fan of the RUP, but I do see it containing some mature properties lacking in many agile projects. Do you see any signs of Agile “growing up” in terms of documentation
First, I’d like to say that many people misuse RUP. It’s like I give you a recipe book – and you think that if you want to use the book, you’ll have to do every single recipes. I guess you would find that a little heavy weight too. Organizations say “RUP forces us to do X”, but RUP doesn’t force you to do anything. We wanted to collect recipes for doing things, to let people pick the ones they need.
To me it seems the Agile movement is going a little bit in all directions. Agile is a “Guru”-driven business – with all kinds of brilliant people running around shouting things like “Kanban is better than Scrum”, “Scrum is better than Kanban”, “XP and Scrum are compatible”, “No they’re not” – and so on.
So to contrast the two approaches, RUP was assembled systematically and as a coherent whole. The agile movement is all about everyone doing things their own way. It’s fun, but also confusing for people. There’s really no shared vocabulary.
Talking generally about documenting architecture and design, I think we’re beginning to realise that Design Decisions are first class citizens. Just having a static description of the architecture won’t be of much help if you’re in a situation where you need to maintain a legacy system. You need the decisions too, the rationales that was made in constructing the design in question. Actually, you can rebuild the entire architecture if you know the decisions – but not the other way around.
Design Decisions are part of the glue between requirements and the final design. The problem in capturing them is, that very often the naïve approach is “let’s build a tool to capture decisions, then ask designer to enter decisions”. But the designer has more important things to do than “feeding the beast”.
So we must find a more subtle way to capture decisions. And the way must not demand a lot from the designers – there’s no real incentive for them to capture anything: the pain of not having captured it might not be induced years later when the need to maintain or extend the system arises. And chances are, that will be the job of someone else.
If you had not become a software engineer, what would your career have looked like?
Actually, I’m not a software engineer. My education is as a mechanical engineer. But then again, I did my Ph. D. in computer science.
Retrospectally, I think I would have been become a structural engineer, working with architects. But Around the beginning of the 70′s, it looked like the money was in software… I guess time didn’t prove that wrong.
Already as a student, I was making lots of money writing Fortran programs. I was hired to do software for IBM, it ment nothing that I wasn’t educated for it, as long  as I knew how to code.
I really hated that job, and I quiet after 4 months. And then, 33 years later they bought my company, making me once again an IBM employee. I was still in their employee database. “Lucky you, Philippe, we can add 4 months of seniority…”
At JAOO, Philippe will do the talk “Documenting Design and Architecture” about design decisions and rationale, how you represent architecture and capture the history.. Wednesday at 14.45.

Where are you from?
I was born in Strassbourg, but now live in Vancouver in Canada.

Where do you do your daily work?
Most of the time I’m at the university in Vancouver, where I’m a professor.

You haven’t been a professor for that many years. What made you take the jump from commercial software development to the university?
Academia is my retirement position, or my hobby, you might say. I worked at Rational for a lot of years, but left it shortly after IBM bought Rational.

Such a move is not all that unusual – Barry Boehm did the same thing. Actually, I wasn’t really sure that a position at the university was what I wanted, but I’ve known Barry for a long time, and he was the guy who encouraged me to go to academia.

Have you been to JAOO before?
No, it’s my first time. I do maybe 3 or 4 conferences a year. I’m not so keen on going as an attendee, I like to organize workshops and tutorials instead. Used to go systemically to OOPSLA, ICSE, doing one of them each year, but I haven’t been there for 2 or 3 years.

I’ve been part of the Agile Conference organizing committee for last 2-3 years. It works a little bit like JAOO, with speakers coming following their own proposals, but also by invitation. We don’t use formal papers, though – with the exception with the one track reserved for academic research talks.

As an academic, have you got any thoughts about going to a fairly commercial conference like JAOO?
I don’t see myself as opposed to commercial conferences, given that I’ve been in the commercial industry for quite some years. At Rational, we even had our own conference.

You are known for the invention of RUP 4+1, but now you are into this whole agile architecture/documentation thing. I must admit, personally I’ve never been a big fan of the RUP, but I do see it containing some mature properties lacking in many agile projects. Do you see any signs of Agile “growing up” in terms of documentation?
First, I’d like to say that many people misuse RUP. It’s like I give you a recipe book – and you think that if you want to use the book, you’ll have to do every single recipes. I guess you would find that a little heavy weight too. Organizations say “RUP forces us to do X”, but RUP doesn’t force you to do anything. We wanted to collect recipes for doing things, to let people pick the ones they need.

To me it seems the Agile movement is going a little bit in all directions. Agile is a “Guru”-driven business – with all kinds of brilliant people running around shouting things like “Kanban is better than Scrum”, “Scrum is better than Kanban”, “XP and Scrum are compatible”, “No they’re not” – and so on.

So to contrast the two approaches, RUP was assembled systematically and as a coherent whole. The agile movement is all about everyone doing things their own way. It’s fun, but also confusing for people. There’s really no shared vocabulary.

Talking generally about documenting architecture and design, I think we’re beginning to realise that Design Decisions are first class citizens. Just having a static description of the architecture won’t be of much help if you’re in a situation where you need to maintain a legacy system. You need the decisions too, the rationales that was made in constructing the design in question. Actually, you can rebuild the entire architecture if you know the decisions – but not the other way around.

Design Decisions are part of the glue between requirements and the final design. The problem in capturing them is, that very often the naïve approach is “let’s build a tool to capture decisions, then ask designer to enter decisions”. But the designer has more important things to do than “feeding the beast”.

So we must find a more subtle way to capture decisions. And the way must not demand a lot from the designers – there’s no real incentive for them to capture anything: the pain of not having captured it might not be induced years later when the need to maintain or extend the system arises. And chances are, that will be the job of someone else.

If you had not become a software engineer, what would your career have looked like?
Actually, I’m not a software engineer. My education is as a mechanical engineer. But then again, I did my Ph. D. in computer science.

Retrospectally, I think I would have been become a structural engineer, working with architects. But Around the beginning of the 70′s, it looked like the money was in software… I guess time didn’t prove that wrong.

Already as a student, I was making lots of money writing Fortran programs. I was hired to do software for IBM, it ment nothing that I wasn’t educated for it, as long  as I knew how to code.

I really hated that job, and I quit after 4 months. And then, 33 years later they bought my company, making me once again an IBM employee. I was still in their employee database. “Lucky you, Philippe, we can add 4 months of seniority…”

At JAOO, Philippe will do the talk “Documenting Design and Architecture” about design decisions and rationale, how you represent architecture and capture the history.. Wednesday at 14.45.

Free Booze and Confessions Galore

Tuesday, October 6th, 2009

One of the new concepts for this year’s JAOO was a dedicated JAOO Today bar, which we have been looking very much forward to spring upon the unsuspecting audience. And unsuspecting they were, indeed. The bar featured the classical JAOO-green drinks, and much else, but only winners of the JAOO TwitterBingo™ and MatchMaking™ contests were given free drinks – at least at the beginning. To our great delight and surprise, we actually had some MatchMaking winners showing up with their matched speaker, thereby winning the all you can drink social interaction catalyst, also known as booze. The speaker in question, Mads Torgersen was nice enough to exploit this prize and hang around the bar for quite a while.

A number of attendees did not actually win in any of the competitions, but did a nice job of either cheating, trying, or chattering us up, so they also got their free booze, and it’s probably safe to say that at the end of the evening, there was free booze for everybody.

The JAOO Devil was seen twittering at some point, and will probably be late to the keynote on Tuesday morning.

Another new concept was the JAOO Today Party Anonymous Confession Booth where you could go and leave an audio message for the JAOO Today crew to hear and digest. We are therefore proud to be able to provide you with an exclusive writeup:

- Those two girls from Version2, have they left yet? (sustained period of silence while fumbling with microphone) …  We are two IT-gays… We just want to put our bodies out there, just to get some whitewine sprinkler… because that’s what we drink… Amen!

- I’m drunk off my ass, and I’m very excited!

- (sound of waiter dropping a thousand plates) … I’m very sad I didn’t won the bingo.

- Does anything happen if I speak? … Arrrhh, it doesn’t do anything! (but it did)

- (program committee member enters the booth) … I think the program committee did a very good job

All in all a very good evening, and we’re looking very much forward to doing it even better next year.

Must See Tuesday

Tuesday, October 6th, 2009

One day down, two to go. Monday was, as it always is, pretty packed, so did you get a chance so study the program for Tuesday, or did you spend all your time at the JAOO Today bar at the party? In any case, here are some suggestions on what to see today.

Open JDK and What it Means for the Java Developer by Dalibor Topic

Tuesday 11:30 – 12:30 in Lille Sal
I’m not expecting any revelations here, but you might want to go so that you can ask the one important question: When oh when will we actually have JDK7? And will it be too late? And what happened to all the exciting new features? And will the Sun JVM and the JRockit JVM continue to live separately? And when will we have type inference in Java? And will we ever have proper generics? And how about doing something to make it easier to avoid the dreaded PermGen OOM error? Oh well, probable you won’t get an answer to any of this, but it’s probably nice to get an update on OpenJDK nevertheless.

Buy it, Build it, Download It, or Browse It? Achieving Effectiveness with Enterprise Applications by Michael T. Nygaard

Tuesday 13:30 – 14:30 in Rytmisk Sal
This might be most interesting if you haven’t been to one of Michael T. Nygaards sessions yet, but it’s relevant to everybody. This talk might not be the most technical talk ever, but being a software developer, you might have a hard case of Not Invented Here – why buy something when you can do it yourself? In this talk, Michael will discuss this subject in detail, focusing how to get most value for your money.

REST & Caching: Web Services, Accelerated by Stefan Tilkov

Tuesday 16:15 – 17:15 in Filuren
We all know that REST is computer-God’s gift to developers, and we also know many of the arguments for using REST: it’s simple, it uses the normal HTTP protocol and features, easy to debug, no need to use some complicated stack, and so on. However, implementing the HTTP features, for example caching, isn’t exactly trivial, especially when you have to do it from scratch. This is why you might want to take a look at this session by REST-guru Stefan Tilkov. I’m hoping to see some actual code, but I can live with some good advice on caching strategies. Throw something about Edge Side Includes, and I’ll even be happy.

Free stuff

Monday, October 5th, 2009

What happens if you go around the exhibition booths and say: “I’m doing this free stuff guide for the JAOO today blog”. Suprisingly, you get a bunch of free stuff – you should try it out yourself :-) .

The collage in the picture gives an overview of all the stuff I grabbed. There is lots of nice stuff, for instance the air-driven pistol from Redpill Linpro which, when squeezed‚ shoots an arrow at quite a rapid speed! The swiss army knife key-hanger from IBM Rational Software is my favourite gadget though. This is partly because I’ve already been shot twice by some crazy salesperson possessing the air pistol.  The key-hanger features three types of screwdrivers, a knife and a flashlight.

But most important: it can be used as a beer opener.

Brain: Hardwired to code

Monday, October 5th, 2009

Billy Newport is an Distinguished Engineer at IBM and creator of IBM WebSphere eXtreme Scale. JAOO Today met him in Musikhuset for a chit chat.

Where are you from?

I was born in Ireland and grew up there. Since graduating, I did consulting for 13 years. I was making really good money, but as the kids grew older, we got tired of moving around and decided to settle down.

This brought me to the United States, where I’m now doing my daily work at the IBM Site in Minnesota.

Many people – this interviewer included – see IBM as a monstrous corporation with no ability to produce anything worth using – and yet interesting pieces of software continues comes out of it. It’s almost like two different cultures within this one company. How do you see this?

You know I’m really new to IBM – I’ve only been working there for 8 years, so I haven’t been indoctrinated yet.

Before I joined the company, I was probably their most angry customer. And I guess in many ways I do things very differently. It sure gets me into trouble sometimes – but as a company we need that to keep evolving.

Regarding eXtreme Scale, what we try to do is create a sort of viral middleware, trying to mimic the ways open source projects produce software, using Wikis and other informal collaboration tools.

Part of the success of middleware products like Spring is that they’re just a jar that you drop into you app server, and we tried to borrow from those kinds of practices. There’s no need for bosses to sign off on new strategic updates or system administrators to download and install patches and service packs for WebSphere app servers. Our product is as easy as Spring to slip into a project, because it integrates with every app server out there. And it can evolve on its own independent of the rest of the middleware platform.

IBM Marketing is centered around themes like e.g. SOA, where things like Extreme Scale has a tendency to drown, so we’re trying to sell it in a more viral
way too.

How would you compare Websphere eXtreme Scale to the offerings of e.g. GridSpaces?

It’s very similar technology, so we’re competing head to head. I see our main competitors as Tangosol, Coherence, Gigaspaces. And when they eventually come out, Microsoft Velocity.

As I see it, the really interesting thing about Grid Based computing is that by forcing the programmer to acknowledge the distribution, not making it transparent, middleware can achieve all sorts of optimizations. Do you see this dripping down from Extreme Transaction Processing down to more “middle of the road” enterprise computing?

I really do. For example we had a project with a customer doing a sports website using Hibernate and relational database for storager. They handled 10.000 transaction per second. We helped them switch to a grid based solution, backed by the same storage layer, but with the grid in between. Now they’re executing requests 10 times faster – in six weeks from start to production. So it’s very much relevant for more traditional systems too.

But most of all, I think what’s happening now is that grid technology is lowering the cost of deploying solutions. In some cases, disk or databases are neither the best nor the cheapest answer – things like http sessions that last maybe a couple of hours can be stored much more efficiently in a grid: Still fault tolerant, but in a way that is distributable and shared. The grid provides a more economical solution.

This is especially the case when deploying to virtualized servers. People see 10 servers with 5% cpu load and decide to consolidate them to get 1 server with 50% cpu load. But many times, you forget the memory – when you need 10 times more ram for the single server, it might end up being more expensive in the end!

When you look at it, a lot of the memory used in the virtual servers are caches. Middleware will give us ways centralize this memory usage.

How does trends like languages, immutability and focus on concurrency fit in with the kind of middleware you are talking about?

Concurrency within a single box only gets you so far. When the need to distribute arises, you need to take into account the cost of moving data around.

It’s all about partitioning the job. As an industry, we need higher lever abstractions for this; closures etc.

I think we should ban the for loop, and give people a very easy way to handle iteration in a way that scales and distribution. The kind of Fork/Join constructions that are developing as part of for example Java 7, to get those working on grids, might be interesting.

From following you on Twitter, I guess I’ve found out you have quite a passion for racing cars. Where did that come from?

I always liked go-carting, and I did a lot of it in Europa. In the states, one of my friends had a Ferrari, which made my buy a Porsche. We got speeding tickets.

So we thought we’d rather learn how to drive those cars right. But when you race street cars on speed tracks, they tend to brake down – not even Porches are built for the kind of stress put on the car when racing it at maximum speeds. Along the way, buying spare parts got too expensive, so I switched to a real race car.

The racing has a nice side effect: Minnesota is very cold and icy for 4 to 6 months a year, so driving is almost like if you live in Scandinavia. When those are the conditions, it’s a good thing to have the driving skills to keep the car on the road.

Also, my driving helps me fight one of the challenge of modern life: multitasking. When you’re always doing several things at once, switching tasks and skills, it’s hard to be really good at anything.

To drive a racing car as different. Once you’re in the race, it requires complete focus. Racing is one of the few things I do, where when I’m doing it, everything else goes away.

If you had not become a software engineer, what would your career have looked like?

God, I don’t know. I did electronics at 10. Started programming at 11. Did video games commercially at 16. My brain has become hardwired to do software.

As a kid, I wanted to be a soldier, but then computers came along. I think it is a little bit safer that way.

At JAOO Aarhus 2009, Billy Newport gave the talk “Evolving the Key/Value Programming Model to a Higher Level” on monday and will present “How Cloud is working as a disruptor to shake up middleware design” aka “Challenges for elastic scaling in cloud environments” aka “how cloud computing is forcing middleware to evolve or die” in Store Sal on 14.45 on wednesday.

And for the record, Billy’s pretty sure the last title is the one going to lure the most people into the talk. Hope to see you there!

User Groups @JAOO

Monday, October 5th, 2009

At JAOO this year, we have more than 90 presentations and 26 tutorials run by around 100 speakers. Who would want more than that? Only crazy people!

And that is exactly what we expect to see Tuesday evening at JAOO this year. We have added 8 free user group meetings to the agenda. There are user groups for Java, .NET, Spring, Scrum, iPhones, Clojure, Ruby, and IT Women. Wonder what an IT women user group is about…. No, not that! It is for women in IT.

The user group meetings take place Tuesday, October 6, 5.30 – 7.30 PM, and you can register until Tuesday 11 AM for them here:

http://jaoo.dk/aarhus-2009/usergroups/

Beware, the meetings are open even to people who have not registered for the conference, so you might see people from “the outside” there.

Dan North on maximizing social outcome

Monday, October 5th, 2009

During Sunday nights non-presumptuous working dinner for speakers, organizers and crew, today.jaoo.dk crew caught up with Dan North to pose the one question that should be on any conference attendee’s mind: “How can I maximize my social outcome during JAOO?” In other words – how will I expand my personal network, meeting up with the most interesting people during three days?

Looking for at quick get-away from the question (Dan was on his way to some socializing with other speakers at a Århus watering hole), Dan said: “Drink with Aino“, hinting that social life behind the scenes is top-notch for these rockstars of software development.

Since we were not letting Dan get off the hook with a three-word-answer, he eventually settled down to give some decent advice: “Walk up to someone at random, and talk to them!“. Dans point being, that at JAOO, everyone has been through quite a self-selecting proces, and chances are that you will be able to strike up a very interesting conversation with just about any other attendee, probably about almost anything.

Being the prototypical nerd, making contact to fellow nerds that one doesn’t know beforehand might not seem like the most natural thing to do. If that is the case for you, different tactics may be employed: Engage in foolish games using free swag from exhibitor booths. Consume liberal (but not excessive) amounts of alcohol. Pose smart-ass questions to speakers.

In any event, social outcome may always be boosted by hanging out with old acquintances …
Have a happy JAOO experience out there :)

Improvising Whiteboards

Monday, October 5th, 2009

The Neo4j talk was actually pretty good – as always, it can be a little hard to imagine how it should be used in a regular enterprise system, but after attending Emil Eifrém’s talk, I’m pretty sure it can be used for something productive. However, what was more interesting and impressive was that he was actually well prepared – to well that he’d brought his own whiteboard. How often do you see that?

This year: Demo Ghost Works Behind the Scenes

Monday, October 5th, 2009

While both Kresten and Barry where on the top of their game, the demo ghost was able to get a whisper out to the audience, working behind the scenes setting this mornings keynote slightly out-of-focus.

It will be interesting to see if the demo ghost will prevail as strongly as last year, when Googles brand new V8 could not ignite