State of the Browser 2012
A rainy April Saturday in North Greenwich (London) was the host of this year's State of the Browser; where a representative from four of the five browser vendors spoke about how their browsers have progressed in the last year and what we have to look forward to going forward.
The day was structured as five talks; followed by a choice of 6 breakout sessions before concluding with a vendor Q&A.
Web vs Native: It Ain't Over 'Til It's Over
Michael Mahemoff began the day with a talk about "Web Vs Native". Native apps have been very successfully, with Instagram just the latest in a long line of examples; and while the mobile web has progressed somewhat native apps are still prevailing as the most popular.

Michael has identified four areas of challenge for the web: User Interface, Device Integration, Offline and Background Processing.
While we do seem to be making good progress with User Interface; Device Integration is still lacking with no ability to provide notifications; or hook in to a single sign on. Offline is a problem as browser support varies, while background processing (scheduling tasks to happen when the web app is closed) is non existent.
From Michael's talk, it seemed to me as perhaps part of the problem is the phone vendors themselves - by allowing these features they would be removing some of the appeal of the App Store. To me, at least 3 of these issues should be fixable by Boot to Gecko.
Michael had solutions to some of the problems himself. Sites like HTML5Please give direction to developers; tools like Modernizr help us provide progressive enhancement and we can work to make our apps easier to use with simplified login and URLs for sharing.
[Michael's slides are available online](http://prez.mahemoff.com/state- native/#/), and he provides a rather nice summary of his talk on his blog.
No App is an Island
Paul Kinlan from Google spoke second. Paul began by showing how the web is changing at a pace never seen before giving quick live demos of CSS Regions; CSS filters; the shadow DOM and scoped styles before introducing getUserMedia; WebRTC; Dart and Chrome Frame.
But Paul's main conversation piece was about tunnels and bridges, and how they are built. Tunnels tend to be bespoke and require lots of engineering; while bridges often follow common patterns and are easier to build and maintain.
The bad news is that we've all been building tunnels. The good news is Paul has been working on a bridge solution.
In the web world, our tunnels are our server to server communications and our oAuth handshakes. Every time we wish to support another service or social network, we have to write more code and create another handshake as they are all different; which means we only support the most popular services. Paul and his team have been working on Web Intents - "a framework for client side service discovery and inter-application communication".
Web Intents works in the same way as Android's share button. The client describes what they are trying to do (e.g. share, edit or save), and the services that can do these actions make themselves known. They can work across all browsers (IE8+) using a shim.

Web Intents were definitely one of the ideas that provided the most excitement at the conference, and one I'm keen to look in to further.
[Paul's slides are available online.](http://kinlan- presentations.appspot.com/bridges/index.html)
The Web As It Should Be
Next was Martin Beeby from Microsoft. Martin's talk was hit by several technical difficulties such as the videos not playing and being unable to connect his PC to the conference system; but he still managed to give a successful and interesting talk and massive props to him for not letting technology defeat him.
Martin began with an update which along with announcing he is going to become a father (congratulations), also covered why text shadows never made it in to IE9. Simply, text shadows were performing badly due to the way Internet Explorer renders fonts with the GPU.
After apologising for IE's past mistakes (e.g. the long wait between IE6 and 7), Martin focussed on IE10; which was important as we need to look forward not back.

With Windows 8, web apps can be fully fledged applications, they can work full screen, and they can work offline with the likes of AppCache. The list of additional features in Internet Explorer 10 was rather impressive - CSS3 transitions, CSS3 animations and Web Sockets to name a few; although it seems like WebGL definitely isn't coming to the browser this version.
There is a [IE10 Compatability Inspector](http://blogs.msdn.com/b/ie/archive/2012/01/20/ie10-compat- inspector.aspx) which can be used for ensuring your website is ready for IE10.
Martin also spoke about CSS grids which provide an easy way of laying content out on a grid; and provide a solution to the current layout hacks we currently have to implement. Although with the likes of Flexbox, CSS template and CSS columns I'm not sure how much use there is for yet another layout type.
[Martin's slides are available online](http://www.slideshare.net/thebeebs/the- web-as-it-should-be-10109600).
Broken HTML5 Promises - Are We 'Appy?
Starting with a semi-colon (just to be safe), Chris Heilmann spoke about "HTML5 promises" - the promises that had been made, and whether they had been kept.
During the last few years, the HTML5 hype machine went in to overdrive and everyone spoke about how amazing HTML5 was and how it was going to kill Flash
- yet mobile web programming is a mess. What's more, everybody has a different definition about what HTML5 is, as shown in this diagram below (source).

When Chris went to a mobile conference in Barcelona he got to speak with a different audience than normal; an audience that asked different questions like 'is HTML5 ready yet?', 'is it as performant as native?' and 'can they protect their code?'. For all the use cases these users want, HTML5 isn't ready yet - there are still issues with the solutions proposed, such as offline.
Developers are too busy worrying about semicolons, preprocessors and speed to notice that native apps are providing superior experiences to the mobile web experiences we are producing.
Mozilla are working to fix this with education projects (for young people and above), the MDN, Boot to Gecko; the open web marketplace and of course Firefox and it's new Developer Tools.
Chris' slides are available online.
Battle of the Browsers
After lunch, Seb Lee-DeLisle ran a live coding session where he created a demo generating thousands of pixels before running the demo on each of the browsers. It's clear that Seb knows what he is doing when it comes to coding canvas demos, for a live demo his code was almost without error working first time the majority of the time. The results were a little surprising with most of the audience expecting Chrome to out-perform its competitors. In reality, Firefox was crowned the winner with Safari and Opera taking 2nd and 3rd places respectively.

Breakouts and Q&A
What followed were a choice of 6 breakout sessions, where we were able to choose 2. I chose to go to Chris Heilmann's session which included lots of live demos, and Seb Lee-DeLisle's session on creating particle effects.
As the day came to a close, we concluded with a Q&A session. There were some interesting questions, but no real revelations. It was great to see the representatives playing nice with one another - after all, they all have the same aim - to make the web a better place for us all.
All in all, State of the Browser was a successful conference, amazing value at £10 and worthy of waking up early on a Saturday for!
More Blog Posts
Observability with Slack Workflows
I recently needed to keep an eye on a third party's rate limit during a product launch, and Slack Workflows seemed like a nice solution to alert me to issues. Let's take a look at how it worked.
Peacetime vs Wartime
Your monolith is buckling under heavy traffic growth. The quick fix is to beef up the server through vertical scaling and buy yourself six months. The right fix is a four month microservices migration that will either save the company or kill it if you miss the deadline. Meanwhile your $2m client is demanding new features or they'll go elsewhere.
From Sprawl to Structure
The business is growing, and your engineering team is too. Great news - until the sprawl sets in. How can your teams and processes scale with consistency and maturity?
Ship Fast, Scale Clean - Building MVPs That Last
Your founder comes to you with the classic Minimum Viable Product (MVP) dilemma. We need to build quickly for speed to market, but make it maintainable so it can scale as we grow.