I've finally gotten off my lazy ass and written this blog post about my experience at web directions.

General Feel

This being my first Web Directions South meant that I had nothing to compare the experience with except for perhaps JSConf AU at the end of last year. The speakers were definitely of a similar calibre, most of them seemed well prepared and adept at delivering presentations.

I started off taking notes, however I stopped midway to try and absorb more.

Below are the talks that stood out and some of the notes/memory I have on them.

People Not Users - Rachel Binx

This was a great talk, Rachel spoke of the how our interaction with the web has changed throughout the years and how we as creators of the web must start to think of people using our products rather than users. A great way to open the conference.

Conquering the Uncanny Valley: Making Web Apps as Smooth as Native - Andrew Betts

Andrew Betts gave a very interesting and useful talk on optimizing UI citing his experiences with the Financial Times app in the UK, one of the main points I found quite compelling is that the users of the app felt as though they had downloaded a native app even though it was merely a web app wrapped in a web-view. He concluded that the meaning of native today, at least to a user, means that it works really well on a device rather than being related to any kind of technical reasoning.

From a animation/ perspective he and his team set out to achieve two things:

  • Keep any transitions or animations to less than 16ms
  • Keep all pauses in the app to less than 100ms

From a network perspective they used the following techniques:

  • Make every request count and make them infrequently
  • Async everything, start scripts after unload
  • Batching and spriting for images and assets where possible
  • Queue api calls, batch requests and responses
  • Prefetching where possible

On the rendering front they used the following techniques:

  • Timeline, chrome tracing, FPS meter were tools used to profile and analyse performance
  • Disable hover effects on devices and scrolls by namespacing the psuedo hover class
  • Remove border-radius and box shadow since they are expensive when used together
  • Layout Boundary: Boundarizr library was used
  • Layout thrashing, some very specific optimizations to do with order of DOM manipulations
    • Avoid too many changes to the DOM
    • Don't interleave read and writes, write DOM manipulations after all reads have been performed
    • FastDOM library
  • Image decoding is very expensive so use data URI's instead
  • Use GPU rendering where possible by using the translate-z, this will trick the browser into thinking it is rendering 3d.

He spoke about data stores and the many different options available. He also mentioned that all of these options are quite bad although they specialise in different things.

Finally he spoke about the perception of performance and one of the interesting techniques was the control of failure. That is if a request has failed and you give the user the ability to re-initiate or continue the request it will seem as though it was faster even if the app is constantly polling for a re-connection.

Barely succeed - it's easier! - Maciej Ceglowski

Maciej Ceglowski the founder of pinboard gave a very entertaining and interesting presentation about start-up culture, I can't really do it justice by explaining/describing it here so I won't attempt to. It's just one of those 'you had to be there' moments =).

The Z Dimension - Glenn Maddern

Glenn Maddern spoke about painting in css and conquering the layers and rendering contexts that css creates. Anyone who has ever looked at this will know that it will melt your brain. Unfortunately I didn't take notes as this was one of the last talks of the conference and by then I had stopped altogether.

He described the way css does painting and more importantly some of the ways we could debug this using some of the experimental chrome dev tools (hidden of course behind a flag). I'll definitely be putting those down for investigation in the future.

Fin

Unfortunately this all I have notes on or have memory of, I will endeavour to write down more at next year's conference. I had a great time overall, perhaps what was even more interesting than the talks themselves was the number of different people I got to meet. Next year, more photos perhaps. Thanks to the organisers for making the experience so awesome!