NDC 2010. Day 1


Yes, here we go again with boring (or not) post about what’s going on in the conferences I attend.
This time is the Norwegian Developers Conference (hence the NDC) that happens to be held in Oslo.

KeyNote (Chris Sells)

After a less than spectacular intro by two lads with a mic and the ability of NOT firing up a mostly-Nordic crowd early in the morning and an impressive “roboting” fellow that proved the whole world one can move with a prominent stomach, I set to listen Chris Sells talking about his Norwegian heritage (if any) and data in general. Listened but hardly eyed him as tables were not facing the scenario.

Anyway, the speaker was quite funny (way more than the intro-guys, sorry to pick on them) but the keynote was very light on the content and had no wow effect on me.
Not that I complain starting the day at a slow pace, though.

Strategies Against Architecture (Kevlin Henney)

I did not have a lot of wishes for the post-keynote (as in many potentially interesting sessions) but I had never listened to the speaker and now I do not regret at all having attended his session.
Being the content somewhat fuzzy (but what would anyone expect otherwise from a session on architecture?) the speaker was terribly engaging and made the subject very agreeable.

Design vs. architecture, technical debt, generalization, malleability and cohesion to end with a lovely cite about the high cost of good architecture against the even higher cost of good architecture. What a nice way to start.

Overview of Concurrent Programming Techniques (Steve Strong)

I did not plan to attend to this one, but I changed my mind on the very last minute to finally see if I get some of the problems to solve in the concurrency (as in parallelization) arena.

The speaker did a good job giving the overview and it was the right level for some noobie like myself. He almost made it look easy (demoware is always easy, right? ;-p)

Overall I was a little more wiser on the improvements in the ThreadPool class, the new Parallel.ForEach/For,the power of the Task and the possibilities of PLinq.

Programming with GUTS (Good Unit Tests) (Kevlin Henney)

After a light lunch (note to self: do eat seating at a table, chances of communication with another human being increase exponentially) and having enjoyed his previous session so much, I listened to Klevin back.

I do have some experience on the subject, but I always expect to learn something new from people that outsmart me. I did pick up some new arguments in favour of testing and TDD (know when you’re done, for instance), why bugs cannot be treated as features and his arguments in specification-style testing against “classic” POUT (Plain Old Unit Tests).
I also had to nod bitterly when mentioned how a good testing hygiene that prevents bugs usually gets lower level of recognition than heroic chasing of runtime bugs in production systems at late wee hours.

I Can’t Hear You, There is an ORM in my Ear (Rob Connery)

Behind that funny name, Rob Connery delivered a session on practical use of NoSQL techniques in “real” applications.
I have to admit it, NoSQL buzz has somehow caught on me. Just a little bit. Just out of curiosity, I promise.

Having never attended any talk of his I was tremendously amused by Rob’s humoristic style: terribly funny in an easy, quiet way. I did not get a whole lot of new insight about object/document databases (having already played with them myself).

I liked his style of showing a video and commenting what is going on, as opposed to a typing demo (good for not getting lost in an one hour talk).
On the other hand, I was mildly annoyed about his terribly optimistic (candyfloss-manned unicorns included) world view with non-relational databases. I am suspicious as I have not passed the play-with-the-toy phase to enter the build-something-a-client-should-pay-for one.

Noda Time. An Alternative Data & Time Framework (Jon Skeet)

I was really looking forward to listening to Jon live. He is one of my heroes and, as a bonus, I am mildly interested in date/time and the problems the current framework libraries bring along.

He went through the historic background of Joda Time (the Java progenitor) and some of the problems it solved in the Java arena (and how lucky I felt that I was not programming in Java using those gruesome APIs) to later talk about some features and key concepts of the .NET library.

I will tell you a secret. Jon did “just” an OK job. My bad that I was expecting more then OK from Jon “Da Man”.
But let me tell you one more thing in his favour: Time is a darn hard topic to talk about. It is very complex and it has that standardization smell mixed with decisions that are both political and terribly wrong (how often do they go together?) that makes it even messier. Our brain knows better to keep himself happy and ourselves safe with an easier interpretation of the concept Time.

Test-Driven Javascript (Mark NiJhof)

The last one for the day was one I was waiting in eagerness as I have been bitten in the arse by buggy and untested javascript.

To be honest with you I was disappointed with the session. It was the last session of the day, our brains are tired and our attention levels are low. Experienced speakers should be aware of those handicaps. Not in this case. The session was not entertaining at all. Some mistakes, that in my opinion, made the experience sub-optimal:

  • Presenting about a not-so-complex but real world scenario. Is that a problem by itself? On the contrary, it would have been an advantage if the scenario had been explained properly beforehand instead of when hitting a barrier with code on the screen
  • Excess of improvisation. Being brave enough to type the examples in front of the audience should not be confounded with not preparing enough your talk. The component of interaction gets lost when the audience is not encouraged to be part of the scenario.

I liked the idea. I took some interesting thoughts to try in my own code but I was less than thrilled about the delivery. Am I being too harsh? Probably so. Certainly so.
What I want to stress with these reflections is the point that successfully delivering a session is, certainly, no walk in the park.