LondonJSConf 2014 writeup

This is a writeup of the LondonJSConf conf in London about JS.

It's written particularly for people who weren't there, so you can feel like maybe you were :)

First and foremost I want to say a huge thank-you to all the speakers. Getting up in front of the huge crowd of experts that came to LondonJSConf must be as daunting as performing in any west-end show. Moreso in fact, because your scene is a 45 minute solo, with questions afterwards, your character is yourself and you only get one shot at it. So, again, thank-you and well done for conquering both your subjects and nerves. Every single speaker I saw delivered a passionate and well-researched talk, you all did great jobs.

Also massive thanks to the organisers and sponsors; your contribution is often hidden from the public - it's only when things go wrong that we notice you're there at all, and from what I saw you were invisible when we didn't need to know about you and visible when we did. It's a balancing act to give the attendees a feeling of confidence in you and still get the important behind-the-scenes things done, and I think you got it spot on.

I won't pick apart the good and bad points of the conf itself because I think most people will raise the same issues, and over-all there wasn't much to complain about (tldr: wifi, talk descriptions, stick to the plan leroy, don't put an in-depth workshop as the final talk).

So lets go ahead and review the talks I attended.

Keynote: The Touch Events

By Peter-Paul Koch (@ppk, slides.pdf)

PPK of Quirksmode fame kicked off with a great talk about interaction events.

Key points:

Web Components can do that?!

By Addy Osmani (@addyosmani, slides & more)

Superquick video if you missed the talk: Addy Osmani, "Web components: A whirlwind tour" [01:39]

Addy presented the case for using Web Components, which I haven't looked into before. I wasn't 100% onboard with the idea but the key points seem to be:

Supercharging Node with Kraken

By Tim Messerschmidt (@SeraAndroid, slides)

Tim's talk gave us a convincing overview of how the KrakenJS suite combines NodeJS, Express, RequireJS, LESS, DUST, Grunt and more into a cohesive toolset that allows rapid application development in a structured and performant way.

Key features are:

Leap into the unknown: 3D sensing and browser interaction

By Mairead Buchan (@tiny_m)

Related demo: Leapmotion demo.

Mairead gave a nice demo about how we can interface with the Leap Motion controller via LeapJS. She manipulated a 3D model using her bare hands, which was pretty cool (think Minority Report but without the gloves). At the moment I'm not convinced that it has broad applications, mainly because you need the Leap device to get it working. Clearly *something* along these lines is coming in the future in terms of web UI though.

Choosing Objects, or Functions

By Tim Ruffles (@timruffles, slides (press space))

I really enjoyed Tim's talk about the (im)mutability of data and the implication that has on our choice of data structure. I think it was the most philosophical of all the talks. He spoke not about specific libraries or APIs but about the way that we approach code in a more general way. I think this is a really good thing because it has broad appeal and impact.

Key points are hard to distil but here's my best attempt: (edit: I wrote these before he put the slides up)

Make Your Browser Dance

By Ruth John (@Rumyra)

Interactive demos: dancing.rumyra.com.

Ruth gave us a couple of really sweet demos about the Web Audio API and VJ-ing. I found it really interesting to see JS in the browser being used for things that once would have (had to) been a compiled executable. I also found it interesting to see browsers being used not for websites with global audience but for extremely local applications like in a club setting. A novel use case to me.

The actual demos were really fun, realtime analysis and reaction to audio input from the mic.

This seems like the sort of technology that has a huge possible number of use-cases, and I'd love to see some serious applications for it (and fun ones too, sure).

Building multi-device interfaces with the web

By Ben Foxall (@benjaminbenben, video)

Ben gave a brilliant interactive talk showing off some really novel ways to control websites, a high point was when he manipulated an object on screen using two phones, one in each hand, creating a multi-touch interface across multiple devices. I think his use of audience participation via their phones was a stroke of genius and I think it really made people feel engaged in the talk. I really recommend checking out his other talks too.

As with Ruth's talk, this showcased some interesting local-scope uses for web technologies (eg playing pictionary on a main screen while people in the same room make guesses on their phones, all connected to the main device by webRTC). The demos were fun and quirky, but behind them are some serious cutting edge technologies that I'd really like to see used more in production. I think these technologies are hugely powerful and have the potential to revolutionise the way the web is perceived as a platform.

Closing Keynote: /Reg(exp){2}lained/

By Lea Verou (@LeaVerou, slides)

To close, Lea gave us a thorough tutorial in the use of regular expressions. At first I was unenthusiastic because I grok regex fairly well already, and I felt that this talk was more suited to a workshop than an end-of-day keynote, but I did learn a few interesting tricks from it.

The main point that I took away, I'm afraid, was that regex are hard. Not necessarily in terms of learning the syntax - though that can be offputting - but really in terms of readability, brittleness and suitability. They're opaque, not obvious when wrong and are used for things like date validation when we already have Date.parse. And in a lot of cases they don't even do what they're supposed to. The myriad email regexes floating about should be a canonical example of the inappropriate uses of regex, but we still see people all over stackexchange etc teaching people to use regex for email validation.

This wasn't a problem with Lea's competence or choice of examples; for me these are problems with regex as a whole... but that's probably a whole other blog post, and so this session was thought-provoking for me, if not in the direction Lea would hope.

My conclusion

As I said in the intro, every one of the speakers was professional, entertaining and put together fascinating, inspiring and informative talks. I really enjoyed my first exposure to LondonJS and I'd certainly recommend it to anyone. Can't wait till next year, well done all!

Other perspectives

A few other people have written up their thoughts on the conf too, so I thought it'd be nice to link them here so you can read about talks I didn't attend, and get a different side of the story for talks I did.