Bye U.S., on to Australia

Finishing up a whirlwind tour of the US West coast (QCon SF, Erlang Factory Lite LA, and a Cognitive Modeling workshop in Scottsdale), I am now waiting for a delayed BA flight at the Phoenix airport. Although I’ve spent as many days flying as I have on US soil, it’s been a great trip.

YOW 2010 Australia

Still, I can’t wait to get home and spend some time with the family. Soon, I’m off again. This time to Australia and YOW 2010. I will give a talk on Erlang, and also give two one-day tutorials on Erlang and OTP. I hope to see many new faces there. Come loaded with your trickiest questions, and I will do my best to answer them.

Gearing up for the experience Down Under, I joined my brothers in forming a Movember team. Movember is a great Australian initiative to raise funds funds and awareness for men’s health, specifically prostate cancer and depression in men. All you have to do is to grow a mustache during the month of November, and invite friends to make a donation (clicking that link, you can also judge how my mo is coming along).

Concurrency Track at JAOO 2009

I had the pleasure of being invited to sit on the Expert Panel in the Concurrency Challenge Track at JAOO 2009 in Aarhus. JAOO is an impressive event, and the venue was very pleasant. Unfortunately, I didn’t have time to experience the surroundings or indeed the conference, except for the Concurrency track.

I did catch Simon Peyton Jones’ keynote speech in the morning. Simon is always entertaining, and as part of my background project to learn Haskell through osmosis, I wouldn’t miss a talk on Haskell type classes.

A large music auditorium is not the best for technical talks, though. I have had the experience of singing on such a stage, in which case the blinding spotlights can even have a focussing and reassuring effect. But for a technical talk, you really want to see the audience and sense whether they understand you. When singing you can’t well stop and ask ‘are you with me so far?’, so it’s better to just press on and do your thing – not always the right strategy for a tech talk. Simon, being a master of the podium, simply walked to the edge of the stage, shaded his eyes and asked the audience to wave as evidence that they understood. You don’t just learn Haskell when he is talking.

The Concurrency track was well stacked, with Brian Goetz, Kresten Krab Thorup, Dave Thomas, Rich Hickey and Simon P-J as speakers, and me joining them on the panel.

Brian Goetz gave the obligatory “Free lunch is over” talk, explaining the reasons behind the current multicore trend. I’ll admit that I haven’t been to that many commercial conferences, but my former employer Ericsson had both the foresight and resources to arrange many seminars over the years, inviting leading experts from Sun, Intel, SICS et al, to ensure that every software developer in the company got the message loud and clear. I assume that many have been exposed to similar indoctrination. But it is necessary, and most of all interesting – at least to all who thrive on challenge and new opportunities. Brian kept a good pace, making sure to repeat the key points regularly to make sure they sunk in.

Kresten and Dave played tag and gave an overview of actor-style modeling. Kresten managed to demo how awkward (albeit doable) it is to work with actors without appropriate syntax, and how nicely it could be formulated with the right syntax. An important point, I think, as I firmly believe that we tend to be much more affected by the mental cues built into the language syntax than we perhaps realise. I overheard parts of a discussion at breakfast about whether languages should “lecture us” on the best way to write software, or whether it should simply get out of our way as much as possible. I personally prefer opinionated languages, and my experience with use of Erlang (a very opinionated language) in large commercial projects has reinforced that view.

Dave accounted for some of his experiences with modeling concurrency with actors, drawing on human analogies. I grew fond of this style of modeling while working with Command & Control systems in Alaska. It’s tempting when trying to automate something to become a bit too theoretical and conceive strategies that look nothing like what humans would choose if solving the problem manually. My mentor back then, Col John (Shep) Shepherd, was a retired Air Force Colonel, former fighter pilot and AWACS Commander. He had no training on computers, but knew exactly what he wanted from a Command and Control system. And, like most who have not only trained for, but also seen combat, he had a fairly dramatic view on the consequences of failing to meet the requirements. Simple and intuitive strategies were favoured over the esotheric, and the results were nothing less than astounding.

Dave also mentioned a background in Command and Control, but we didn’t have time to compare notes in this regard. Some other time, maybe…

I will not say much about the panel, but the main criticism seems to have been that we did not disagree enough. Perhaps a few die-hard C++ and threading experts would have spiced it up a little? As it was, all members of the panel were advocates of functional programming and immutable data.

The afternoon session continued with Rich Hickey talking about Clojure’s strategy for handling values that change over time. A very well thought-out lecture with some very important lessons. Talking to some members of the Clojure Users’ Group in Denmark, it appears as if Rich’s approach works very nicely in practice too.

Simon Peyton-Jones ended the track with a talk on nested data parallelism in Haskell – one of his favourite research projects. A great talk. In the words of Ola Bini: “Neat, geeky stuff.”

In-service upgrade woes

I’ve been using the StatPress plugin in this WordPress blog of mine, and when a link appeared that offered to upgrade it automatically to the newest version, I just had to try it…

Now I don’t have a working StatPress plugin anymore.

Not to say that upgrades in Erlang always go smoothly either, but the ones as simple as this usually do.
Luckily, nothing else seems broken. For now, I guess I’ll live without StatPress then. If I get lots of spare time, I might investigate what went wrong.
(Update: After a few days, the plugin started working again. Oh, well…)

How to give a good talk

I recently had reason to give a talk about Erlang QuickCheck at an internal conference. QuickCheck is great, great stuff, but it’s a bit on the weird side, and presenting it to a mixed audience is not entirely easy.

Simon Peyton-Jones to the rescue. I recalled having seen a slide set about how to give a good presentation, and set out googling for it. I found it, and more: a presentation on the subject given by Simon in Wienna.

Here it is.

It takes about an hour to watch (I actually watched it three times), and is a great way to get prepared for a talk. Highly recommended.

How the talk went? Not for me to say, but at least it came off roughly as I had prepared it, and many of Simon’s tips were fresh in my mind. Indeed, some of the things that one might otherwise have found a bit challenging, were now rather amusing, because he had predicted them in his talk. Thank you, Simon.