QCon London – Summary


All in all, QCon London this year was amazing. I find it interesting that from the first time I attended QCon I thought they were exceptionally good. And every time they keep getting better. Of course, it is fantastic to be able to meet all these great people at the conference, and you get lots of chances to hang out with them, ask questions and have discussions. But if you take a look at the presentations offered, they all feel very fresh and the quality is consistently of a very high level.

I think the system of having track hosts that put together their own track is a fantastic idea, and I think it might be one of the reasons that there are ALWAYS more than one presentation going that you want to see.

The fact that the QCon crew from InfoQ and Trifork are all lovely people is not a negative either.

If you haven’t visited QCon, I really think you should. It is really very good, and I’m privileged to have been asked to present there more than once. I always have a great time and I hope I will be able to continue to come back there.



QCon London – Friday


The last day of any conference can sometimes get a weak schedule, since many organizers feel that people have a tendency to be wiped out after all the previous days of conference, and won’t be able to focus as much on the last day. Luckily, QCon and JAOO never does this – the last day is generally at least as strong as any other day. This time around I felt it was a very good day indeed. I saw Stefan Tilkov do a very deep presentation on his thoughts on the balance between generic and specific in architecture and development. Stefan shared his long experience in a funny and thoughtful way that contained lots of interesting insights. After that I managed to catch the last 10-15 minutes of Joe Armstrongs talk about Erlang. This talk was focused on systems that never stop, and Joe’s presentation was based on this, which changed the focus a bit. Sir Tony Hoare was in the audience during this talk, and one amusing moment was when he asked Joe a question about the tradeoff between timeouts and failing fast. Great stuff. This only happens at QCon and JAOO. (As an aside, the evening before I got the chance to sit down and have beers with Steve Vinoski, Joe Armstrong and Rich Hickey. This never happens at other conferences either.)

After the presentation, Hoare asked me if I was interested in being part of a panel during his after-lunch presentation. The presentation was about null references, which Hoare calls his billion dollar mistake. To be fair, I think it was one of those inevitable things, that would have happened sooner or later anyway. Ulf Wiger became part of the discussion, and presented a much better defense than my point about inevitability.

In the DSL track, Amanda Laucher gave a good overview about what Oslo is and why you might want to use it. What I was looking for here was just enough of a look at the tech to see if this is something worth investing more time in. My conclusion was that at this point in time, it doesn’t seem to give me much new that would help me. Especially the Mgrammar stuff seemed to be a not-invented-here copycat of Antlr. Martin corrected me about that, though, by pointing out that Mgrammar actually handles GLR grammars. My intuition is that ANTLRs LL(*) would be able to handle most of the same parses, but that’s not something I would bet money on. Mgrammar also doesn’t need semantic predicates to avoid left recursion, which can make the grammars more readable.

The last time slot of the day I spent doing some hacking, and peeking in at Glenn Vanderburgs presentation on DSLs in Ruby, which gave a good overview of the available techniques.

The day ended with the totally hilarious Bullseye panel, where my totally insane colleagues Dan North and Jim Webber hosted a gameshow combining darts and zany questions to a panel of Michael T Nygard, Ian Robinson, Martin Fowler and Steve Vinoski. To many great moments to even start to describe, but if I had to choose one, it would probably be Ian Robinsons answer to the question about what tech has the worst man boobs. Ian’s response basically said that the problem wasn’t the man boobs, but that he couldn’t actually get close enough to touch them without lots of clothes getting in the way. Lovely metaphors there.



QCon London – Thursday


I started the second day quite late. There were a few sessions I wanted to see there but not enough to get out of bed early enough. After lunch I saw parts of David Pollaks talk on Lift. Lift is definitely impressive – you can achieve very powerful things very quickly with it.

After that, I saw Rich Hickey talk about Persistent Data Structures. This was without doubt the best presentation at QCon this year. Rich spent lots of time talking about identity, state and value. It was very good – you should go to http://qconlondon.com/london-2009/schedule/thursday.jsp and take a look at the slides for it. It is pretty deep stuff. I heard many other people share my opinion of the quality of this talk. QCon and JAOO could do much worse than getting Rich back for the next time.

Overall, I spent most of the Thursday having chats with interesting people instead of watching presentations. It was a good day in many ways, especially due to Rich’s talk.



QCon London – Wednesday (Emerging Languages)


The first day of the proper QCon conference started out with Sir Tony Hoare doing a keynote about the difference and overlap between the science and engineering of computing. Fairly interesting, but the questions and answers were much more interesting stuff. One of the more interesting points made by Hoare was that in his view, a full specification is a generalization of testing. After the keynote I started out my track called Emerging Languages in the Enterprise. I introduced this track, doing 15 minutes of talking about my views on programming languages. The slides for my piece can be found here: http://olabini.com/presentations/ELITE.pdf. My talk was made much more interesting by Tony Hoare being in the front row. That made the whole thing a bit more daunting, obviously… =)

I then spent the rest of the day in my track – which was very good. I am very happy with all the presentations, and felt the track was a great success. First of was Michael Foord, talking about IronPython, and how Resolver uses IronPython to create a great product. Some interesting lessons and information there.

After lunch Jonas Bonér talked about Real-world Scala. The presentation gave a good grounding in Scala without looking at all small details – instead Jonas talked about more high level concerns and styles.

After that, Rich Hickey did a great presentation about Clojure. Rich did a great presentation, talking about Clojure from the ground up. It was very well received.

Martin Fowler did a fantastic presentation on ThoughtWorks experience with Ruby. The room was packed for this.

The final presentation in my track was Attila Szegedi talking about JavaScript in the Enterprise. This was also a great presentation, and gave me some new insight into what you could achieve with Rhino.

All in all, the full track was excellent, and all the presentations achieved pretty much what I hoped from them. I learned a lot from all of them.

After the final session of my track, Martin Fowler and Zach Exley did the evening keynote, talking about how technology helped the Obama compaign. Very interesting stuff too. At the end of the day, a very good day at QCon.



QCon London – Tutorials


The first two days of QCon London were tutorials. I didn’t actually spend all my time there, since I had to get back to our office at some times too. On the Monday, I attended Jim Webbers tutorial called GET connected, which talked about different ways of using the web for distributing and separation functionality, where REST style SOA is part of it, but also other things like POX. It was a very information rich session, and in the end Jim had to skip several things that I would personally have been interested to find out more about, such as different ways to handle security, and so on. At the end of the day, it was a very good tutorial, but the material was really too much for one half day.

I spent the rest of the day in the office, reconnecting with lots of colleagues. Lovely.

Tuesday I spent running between several tutorials. The morning was mostly in the Advanced Ruby tutorial by Sam Aaron, which was overall very good content. I think I might have ruined it for Sam a bit by sitting there and being annoying. The only thing that could have improved the tutorial would have been some more advanced material in the pieces on functional programming – not that the material Sam was using was bad, it was just a bit more basic than the rest, which made it feel a bit uneven.

In the afternoon, I spent some time in Dan Norths tutorial on BDD. His material is riveting and very useful. In fact, it was so riveting it was hard to find a place to sit, so I ended up not staying the whole time. I then sat down for a while in Joe Armstrongs tutorial on Erlang. Also good stuff, but it was material I already knew. So at the end of the day I went back to Sam Aarons talk on Ruby Aesthetics, which ended up sparkling several really interesting discussions.



QCon London and Ioke Geek night


In one and a half week, QCon London is coming up. That will be a week of great fun, and I definitely recommend it to anyone who has the possibility to be there. I have the highest respect for Trifork and InfoQ who are organizing the QCon conferences, and I’m definitely looking forward to it.

This year I am actually not speaking at the conference itself. Instead I’m hosting a track where other people speak. My track is called “Emerging Languages in the Enterprise” and I’ve managed to convince some amazing people to show up and talk there. To be specific, my speakers are: Jonas Boner, Michael Foord, Attila Szegedi, Rich Hickey and Martin Fowler. So, if you are interested in languages, be there; it will be a blast.

ThoughtWorks UK have a tradition to organize geek nights around QCon, and this time is no exception. On the evening March 10th (that is a Tuesday) I will be talking about how to create a JVM language. I will use Ioke for most examples, but will also contrast with details from JRuby. The presentation will be quite audience controlled, so exactly what will be presented is not determined. But it should give people a good grounding in Ioke, at least. More information here. Hope to see you there!



Amsterdam.rb


This Monday I took a trip to Amsterdam to attend and present at Amsterdam.rb. TTY, the company hosting this months meeting, had managed to get a pretty interesting lineup, and about 70 people turned up (in fact, that was the limit, so it might be possible to get more people).

This was my first time in Amsterdam, but due to me being really, really sick, I didn’t get to see much of the city. I did manage to spend a few hours with Sam Aaron and his Haskell friends, discussing programming languages and Ioke specifically. Much fun.

There were six sessions planned, but since the schedule was busted from the beginning, the TTY talk on quality had to be removed (which is a shame – I was interested in what it would be about).

The first presentation was a discussion about a tool that could convert UML and YAML description files into scaffolding with internal associations. The main goal for the tool seemed to be to really rapidly get an application started, but the workflow goes totally against the way I generally write Rails apps, so I had a hard time seeing any utility for myself.

After that, Martijn van Excel gave a presentation about OpenStreetMap. I found this extremely interesting. The project seems to be the wikipedia equivalent of maps, which means that areas that Google aren’t interested in mapping will still get mapped in OSM. An example Martijn displayed was a large city in the Philippines, where Google really didn’t have much information, while OSM was extremely detailed. After some discussions and questions, it does seem that OSM has the same drawbacks as wikipedia – spurious updates, trust issues and so on, but I didn’t get the feeling that OSM had implemented the same kind of verification structures that wikipedia uses – at least not yet. All in all a cool project, though. Will definitely consider it if I ever need to do map-based mashups. The lack of geocoding might be a problem, of course.

After Martijns presentation there was a break, and then it was my turn to talk about Ioke. All in all, I spent way to much time explaining some intricacies of the syntax, which meant I didn’t have enough time to talk about the really important stuff – things like macros and the testing and documentation tools. I need to reconsider how to present the material without getting bogged down with details that doesn’t matter as much. All in all I’m still happy about it, though. You can download my slides at: http://ioke.org/presentations/Amsterdam.rb.pdf.

After my talk, Ninh Bui and Hongli Lai from Phusion talked about how they do design by contract. It was a very polished presentation, and I liked the way they did it – but I still felt that I didn’t grasp exactly how they applied DbC. I would have liked to have a long discussion with them about it, since the presentation gave the impression that the main way they did DbC was by duplicating the contracts in comments, in code and in tests. Interesting discussion on how DbC interacts with LSP (Liskov’s Substitution Principle). Once I realized it was isomorphic to the way bounded generics work in parametric polymorphism, it became much simpler to get my head around.

The final talk was about RubyCocoa. At that point my fever had started to fry my brain, so I didn’t really get much out of that talk.

All in all, a great time. Met many interesting people and had some good discussions. The Amsterdam hackers are obviously very cool and I hope I can get back there sooner or later.

There is some photos from the event here: http://amsterdamrbfebruari09hostedbytty.shutterfly.com/.