Christian Heilmann

Posts Tagged ‘maintainability’

Maintainable JavaScript at the ThinkVitamin JavaScript online conference

Monday, September 13th, 2010

Today I spoke at the ThinkVitamin JavaScript online conference alongside Simon Willison, Stuart Landgridge and Drew McLellan.

Topic and slides

My topic was “Maintainable JavaScript” and I managed to pack 150 slides into the 50 minutes of my talk. The Slides are available on Slideshare.

Maintainable Javascript carsonified

View more presentations from Christian Heilmann.

What I covered

I went through a few of the tricks you should apply when you want to write maintainable JavaScript:

  • Using, not abusing libraries
  • Separation of concerns
  • Building for extensibility
  • Documenting your work
  • Planning for performance
  • Avoiding double maintenance
  • Live code vs. development code

A few of the topics got repeated by the other speakers but frankly I am always fascinated just how many people do not know about the X-requested-with header JavaScript libraries add to Ajax requests and how you can use it to render different content for Ajax requests and for include() requests. This allows you to maintain your whole content and HTML on the server and have all the Ajax goodness rendering out a simple HTML string.

The code example for the validation is available on GitHub.

Another thing that is missing a lot in people’s approach to JS is a proper build process. That’s why a lot of people try to optimise for performance during development and leave hard to maintain, specialist code behind.

In essence, I showed that by building logical backend code you can save yourself a lot of JavaScript and you build things that work instead of things you hope will work.

The conference experience

Speaking at pure online conferences is weird. For starters we had to change the order as Simon Willison is on his honeymoon world-tour and currently in Marrakesh, which meant his connection was flaky. The audio during his talk was not the best and he didn’t even bother with video.

It is a strange experience to sit there with a headset and talking to your desktop as you cannot see the audience. Talks get much better when you can interact with the audience, ask questions, see them falling asleep or seething with rage – that kind of thing. In an online conference this is missing and you cannot read the chat whilst you present as this is too distracting. Drew was suffering the most from this lack of interaction and I had my audio drop out once which meant I had to repeat some slides.

All in all I find these things work better when there is a discussion going on – like a moderator interviewing a speaker over Skype and people asking questions. The other option of course would be to record the talks beforehand and play them instead of hoping all works out fine live – it never does. Recording the talks and then having a pure Q&A session with the speaker on skype afterwards seems to me a better way to work with these issues.

The benefits of these conferences are quite cool. People do not have to travel, you can pay one ticket and let a whole office watch, speakers don’t need to wear trousers and the liver of the speakers doesn’t need to suffer as much as it does at normal conferences. I am not quite convinced about the “green” argument of these events as they do use up energy, too but hey, at least it helps people thinking “green”.

Online conferences are a good idea as an add-on but I don’t think they’ll replace conferences as the networking and “meeting in the flesh” aspect is lost and that makes them feel a bit clinical and cold. That said, Carsonified are doing a good job with these right now and are lovely people when you interact with them as a speaker.

Working in the now – video of my talk at Paris Web released

Friday, December 19th, 2008

Paris Web – one of my favourite conferences last year – just released all the videos of the presentations. Most of the presentations are in French, but mine is in English:

In the talk I advocated re-using components and systems we already have to work faster, deliver better and have less hardware and software overhead in doing so.

These are:

Paris Web – Working in the now

Friday, November 14th, 2008

Yesterday I was one of the speakers at Paris Web and my talk was “Working in the now”:
[slideshare id=749394&doc=workinginthenow-1226584706289320-9&w=425]

me showing the slimming benefits of crowded trains. Photo by Xavier Borderie
Originally I meant to talk about HTML5 goodies and how to simulate them with Flash and DHTML right now (writing a small abstraction library) but seeing the latest rounds of crashes and layoffs I changed my stance and talked about things that we could be doing now to both secure our jobs and not lose all the momentum the standards movement got in the last few years.

I’ve explained the reasons and my thoughts on the subject in detail in another post here. In the talk I advocated re-using components and systems we already have to work faster, deliver better and have less hardware and software overhead in doing so.

These are:

The feedback so far was great, but there was also a lot of “yeah this is open source, but what if the company running it goes down and how can I trust it” questions. I will write something longer abut this soon, it is just very interesting to see that there is a big problem with free things and trust.

The art and pain of teaching JavaScript – my talk at <head>

Sunday, October 26th, 2008

I just delivered my talk on teaching, learning and writing JavaScript for use. The slides are available on slideshare below and if you don’t want to sign up, I’ve also put them up on S3.

[slideshare id=695060&doc=javascripttutorialshead-1225047967659425-9&w=425]

I’ve covered the different types of JavaScript consumers: Users, Tinkerers (explaining that there is nothing derogative about this term), Implementers and Developers. I then started to explain where these people come from, what they expect and how we can reach them.

Other topics where how to battle successful but outdated information, ideas how to keep systems upgradeable and generally to consider moving away from an “OMG Ponies! Technology! Let me show you what I can do” to a “Here’s why I love using this and this is how I did it” approach.

Hopefully I inspired some people. I thoroughly enjoyed the session, although it is weird to talk to a monitor :)

Maintainable JavaScript – Videos of my Fronteers talk are now available

Saturday, October 11th, 2008

The lovely people (check the interview to see what I mean) at Bachelor ICT just released “the videos of my talk about Maintainable JavaScript”http://www.bachelor-ict.nl/christian-heilmann at the Fronteers conference in Amsterdam:

Here’s part one of the talk:


Chris Heilmann: Maintainable JavaScript, part 1 from Bachelor-ict.nl on Vimeo.

And Part 2:


Christian Heilmann: Maintainable JavaScript, part 2 from Bachelor-ict.nl on Vimeo.

They also interviewed me after the talk to re-iterate some of the points:


Christian Heilmann: Maintainable JavaScript from Bachelor-ict.nl on Vimeo.

Great job guys, thank you!

You can find the slides of the talk at slideshare.