Friday 21 February 2014

LondonJSConf 2014

Thursday 12th February I attended the inaugural London JS Conf held at the Prince Charles Cinema in Leicester Square which was organised by the team behind London JS.
Turning up at the venue I was greeted by a short queue of fellow attendees and whilst queuing I looked at the cinema posters and noticed that each talk had its own poster.
It didn’t take me long to get inside where registration was easy although I did hear that not long after I got in the queue was right down the street.

TL;DR

Good conference, few minor problems, interesting sessions.

The sessions

The conference consisted of 2 tracks with 6 sessions on each track plus an opening and closing keynote session that everybody attended.

Opening keynote – The Touch Events slides

The keynote was by Peter-Paul Koch (@ppk), widely known for his work on browser compatibility research, and was focused on the JS events that are available for touch.
Peter-Paul’s knowledge of the subject quickly shone through as he took us through the cascade of events that are fired when you use touch and how different browsers fired different events, there is no standard around this area yet.
Unsurprisingly IE works differently for touch than every other browser, but Peter-Paul said that he actually preferred the philosophy behind the way IE worked it is just unfortunate that the implementation is really not nice.
The one thing he stressed is that if you “stick with click” then you can’t go wrong as all future and past browsers support this.
All in all an excellent session to start the day.

Hitchhikers Guide to Type Script slides

Although this wasn’t the presentation I intended to watch (see Things that didn’t work out so well) Martin Beeby (@thebeebs) gave a great talk.
To start with he changed into his pyjamas, robe and made sure he had his towel at the ready to present the session as Arthur Dent, although this may have been lost on some of the younger members of the audience.
He started off by telling us how XBox apps are now built in JS using TypeScript to do so just like the new Visual Studio online a.k.a Monaco, showing that MS already has experience creating large applications using TypeScript.
He then went on to talk about TypeScript and how it helped you when building a large JS application providing static type language features to try and catch problems before the code is deployed.

Ghostbusting with Node.js slides

Hannah Wolfe (@erisds)  CTO at The Ghost Foundation then gave us a talk about the how Ghost ended up being created on Node rather than as WordPress plugin which was the original intention.
Hannah talked about how important she felt open source was for Ghost and covered the reasons why it had started as closed source due to KickStarter and the need to be able to give people access to the code as a reward for backing certain amounts.
A side effect of the KickStarter campaign was that it helped them with defining an alpha and beta program but more importantly grew a culture around the code so that when they eventually went fully open source there was already a team of people that knew how development on Ghost worked and enforced it themselves.
Hannah also covered some of the pain points in getting Ghost to work easily, such as SqlLite native binaries, but that from this came the ability to have a one click install.
The future for Ghost looks bright, lots of problems are being solved by the open source community rather than the core team, plus with Ghost offering a hosted version now even people with no desire to set it up can use it which can only grow adoption.

Network Connectivity: optional slides

The 1st session after lunch was Jake Archibald (@jaffathecake) developer advocate for Google Chrome.
He started by introducing us briefly to AppCache and they told us how much he hated it and how it basically seems to work by magic (unless you read the humongous manual, and even then you couldn’t guarantee it would work).
Jake said the we needed to build sites from the perspective of offline first, trying to add it in afterward will always be more difficult.
Then he showed us ServiceWorker, when released it will be an alternative to AppCache with the aims that:
  • Uses JavaScript to manage what the network does for given set of URL's
  • Is shared between different pages
  • When nothing is using it, it will be disposed
  • As little magic as possible
  • Built to be async by default
  • Works with response or a promise that resolves to a response
Currently ServiceWorker is only available in Chrome Canary but will be shipped by Mozilla, IE Team is not currently looking to support it and Apple has made no comment on whether they will support it or not.
There is a polyfill available on GitHub but its not production ready, just for playing with.
The service worker looks like a really useful and something I will be keeping my eye on.

Choosing Objects or Functions slides

Tim Ruffles (@timruffles) launched into his talk by quoting Alan Kay’s definition of Object Orientation he specifically pointed out that objects have state and if you don’t have state do you need an object? he moved onto how this relates in MV* JS frameworks questioning if we actually need objects if we don’t have state e.g. controller.
Tim said objects are most often used when we are trying to model something (real world. existing process, etc) but if it is not a simulation then do we need objects? and what in the real world is a “model” and do we need them?
Focusing more on the JS questioned whether we need to use objects, should we be “newing” up objects? do we need to try and implement inheritance?
As an alternative Tim talked to us about immutable data, events and working with streams to make life easier. Tim said he didn’t hate objects just that they should only be used in right place.
Summing up Tim exhorted us to not be caught in the trap of todays “one right way” being tomorrows mistake, don’t be an “X” programmer, just be a programmer.

Security, Auditing and Penetration Testing slides

Joe Petterson (@joe8bit) session was split into the 3 areas in the title
Under the security section he initially focused on weaknesses in DOM interactions and showed us corresponding actions to avoid these weaknesses. He then moved onto telling us about problems with Local storage, Web Workes, AppCache and especially WebGL (WebGL runs code on the bare metal bypassing the browser “sandbox”).
In Auditing he wanted us to think about the attack surface our sites expose, trust boundaries, fundamental security implications of the technology we choose. At its root Auditing is all about understanding risk.
Joe provided a really good explanation of penetration testing, explaining a lot of what companies believe is penetration testing is in fact just vulnerability scanning and what the difference really is (think calls at 4am trying to get your user name and password).
Although Joe only touched on the surface of this subject it was very useful & insightful talk.

The bits behind JS Bin slides

This session by Remy Sharp (@rem) was all about how JS Bin came about from the his desire for people that were asking him to solve problems could easy show him the code that they had a problem with combined with Jon Resig’s Learning Advanced JavaScript site.
It further evolved when he was going to be running a workshop and wanted people to be able to follow along with code on their machine as he typed it on a presenter machine, this process he termed Codecasting.
It was really interesting to hear how the idea evolved and the challenges Remy faced to get it to work as he wanted.
He then went onto explain some of the challenges he has, partly due to how the system has evolved, the way makes database changes through migration scripts, using git hooks to deploy the site and some of the problems he experienced with the site (like 99% CPU).
He then talked about some of the features that are coming soon such as playback & annotation which all looks cool.

Closing keynote: /Reg(Exp){2}lained

The final session of the day was by Lea Verou (@LeaVerou) and given the title of the session unsurprisingly was all about regular expressions.
She used her own tool RegExp Playground to demonstrate how to use regular expressions building up from the very simplest expression to complex expressions.
Lea thoroughly knew her stuff explaining the intricacies & quirks of regular expressions in JavaScript how to gain performance by using certain expressions and not others and how JavaScript is the only language with regular expressions that doesn’t support negative lookbehind (even though everybody has agreed it should for years)
Lea’s talk was very excellent clearly explaining what is to many a complex subject and able to answer the various questions that people put to her.

Things that didn’t work out so well

The venue was generally great, one downside to the cinema though was lack of area’s to congregate during the breaks, luckily the day was dry and so people generally went outside the front of cinema.
The only other downside to the cinema was the size of the second room, I mentioned before that I hadn’t meant to attend Martin Beeby’s talk having seen several talks on TypeScript (and coding some myself) but when I tried to go to the other session on Web Components I found I was unable to join as the room was full. Unfortunately this doesn’t seem to have been an isolated event either as from listening to other people it seems most every session in that room people were turned away.
I was surprised that there was no WiFi available as the mobile signal wasn’t fantastic and tweeted about it which got a reply from one of the organizers saying that no WiFi was a feature so that we could focus on the conf. I’m not sure I buy this since don’t you want people using social media to tell everyone about what’s going on?
One thing that seemed to surprise some speakers was the trouble they had connecting their macs to the projection (most hardened conference goers wouldn’t be surprised at this) and was a reason why some of the sessions either delayed starting or as in the case of Hannah’s session had to be swapped entirely.
Unfortunately I missed the end of the conference as the session was running late due to delays starting and trains don’t tend to wait for you even if you are enjoying yourself.

Summing it up

This was the first conference I had attended that wasn’t .Net focused  to be honest I was 100% sure what to expect but found the talks were interesting and entertaining.
The venue was great as a cinema works really well for presentations with comfortable seating and good visibility of the screen and presenter.
I wasn’t able to attend the pre-conf NodeCopter event and didn’t get to go to the after party which by the sounds of it would have been a lot of fun with bumper cars, karoke and bowling! Next year I shall have to see if I can stay in London for longer to attend all the events.
Many thanks to the organizers for putting on the event, till next year….
The official blog post from London JS Conf about the event can be found here.

No comments:

Post a Comment