Reflections on Extensible Web Summit, Berlin

I was lucky enough to visit Berlin very briefly for the Extensible Web Summit. It was organised, it seems, by members of W3C (but was not an officially branded W3C) and hosted by Beuth University, Berlin. Lunch was provided by Google, beers afterwards by Yandex (although I missed those as I’d taken the inexplicable decision to fly back straight after rather than hobnob with the great, the good, and Chaals.) Thanks to all organisations.

This isn’t a record of the day; the event notes were crowd-scribed. It’s my preliminary thoughts about the concept of the “extensible web”.

As far as I can deduce – because the term “extensible web” wasn’t actually defined on the day – it’s about giving/ exposing primitives so developers can extend various parts of the platform. (Read The Extensible Web Manifesto for a longer description and statement of intent.)

In the current world, we wait for something like Appcache to be specified, then implemented and then scoffed at. This can take a long time, and we might not get what we want; Hixie told me “The appcache API is another big mistake. It’s the best example of not understanding the problem before designing a solution … Appcache works great if you want to do what it was designed for, but it turns out most people want to do something different enough that appcache feels horrible to them”.

So, an example of Extensible Web practices/ methodology is Service Worker – it allows you to control how websites fetch and store information across the network (and when there is no network) but it’s very low-level; you have to do everything yourself in JavaScript – but that gives you great power and flexibility.

One of the tests of Service Worker is: can we explain how AppCache works by coding it via Service Worker in JavaScript? Yes, we can. Similarly, Chrome’s Chris Wilson said how he hopes to be able to explain how the <audio> element works in terms of the Web Audio spec. Explaining how things work and giving us hooks in is a good idea, it seems to me. For example, in a sane, Extensible Web-world, we’d never have had the <canvas> element, but instead would have extended <img> with a scriptable API.

But while it’s good to explain magic, I feel we need to be careful about using the word “magic” pejoratively. A lot of the success of the Web was that simple HTML tags (<a>, <input>) made magic happen. You write <img src=”vomiting-otter.jpg”> and a vomiting otter appears; you don’t need to worry about how it gets there over the network, its caching, its format, etc. Similar with <input> – you just code a reasonably obvious word in angle brackets and it works.

As Steve Faulkner notes, a lot of the success of accessibility on the Web is/was that simple HTML elements makes accessibility happen.

Service Workers, and the spec that I’ve been closer to, <picture>, are great examples of listening to developers (partnership). Service Worker came out of a meeting between Opera, Mozilla, Google, BBC, Financial Times etc and was specified by Google, Mozilla and Samsung (and many others). <picture> came about because developers demanded it, even when the browser vendors and standards bodies didn’t care.

The Extensible Web Manifesto says “We prefer to enable feature development and iteration in JavaScript, followed by implementation in browsers and standardization”. I hope the end result is standardisation of a canon of best practice and then native implementation. Although JavaScript and C++ performance are (allegedly) very close now, I’d still rather see Sexy Feature implemented in 20K of C++ in a one-time download of a browser than loads of devs use a different Sexy Feature polyfill that gets downloaded squilions of times by billions of users of millions of sites.

But I’ve already heard potentially good ideas for extensions to core HTML handwaved away with “oh, that’s a job for Web Components”. So I’m not yet entirely convinced that we’re not heralding a new era of JavaScript-only web development. I don’t want to see the fossilisation of the declarative web and a new Programmer Priesthood (re-)emerge.

How can developers make their voices heard? It’s true that browser vendors are OBSESSED with solving developer’s problems. If we don’t, you’ll make native apps, and then browsers disappear, we default on our mortgages, our partners leave us for Apple employees and our hamsters starve. None of us want this to happen. So we try to listen.

Then there is the question of how developers can participate. The bravery barrier to entry for many of the mailing lists is already too high – I periodically get emails from people asking me to propose a feature or ask a question on a list as a proxy because lists are scary places.

W3C has set up a Specification forum where you can ask questions about specs/ propose a feature. Read around it to see if anyone else has a similar proposal, and if appropriate, add comments to that before you set up a new thread. Use Mozilla’s guidelines WebAPI Design Guidelines and please remember that use-cases are much better than a fully-worked out proposed syntax.

I’m enthused about the Extensible Web manifesto and the progress we’ve already made, eg baking popular jQuery-like syntax into browser engines via the Selectors API, getting our hands on the network with Service Worker, and the heady new world of Web Components. We need to ensure that all devs who want to can participate by allowing ease of collaboration, courteous discourse. And it would be perilous to forget that the declarative web reduces the barrier to entry and enhances accessibility.

Reading List

Standards smörgåsbord

Security Soufflé

Video Dessert

A Boy And His Atom: The World’s Smallest Movie, made by moving individual atoms at IBM, magnified 100 million times.

Jeff Lawson 6 June 1944 – 14 August 2014

Here’s the eulogy I delivered at my Dad’s funeral last Thursday.

Jeff Lawson, or (“Grandpa Fifi” as my kids called him, as when they were little they couldn’t pronounce “Jeffrey”) was born on D-day to Jim and Elsie. He spent his first few years with his brother Colin up in the North East for a while. One of his earliest memories was of running away from home, and getting on a bus to go and live with his Auntie, who spanked him and immediately put him back on the return bus. When his father retired, the four of them moved way down south to Southampton where he mostly lost his Geordie accent, although it returned after a few on the rare occasions when he’d had too many glasses of beer.

middle-aged man smiling and putting thumbs in ears

As a teenager in Southampton he developed a love of music, also shared with his younger brother Colin, and won a twist competition at the hop in the early 60s. In your order of service, you’ll see photograph of him and Colin’s wife Barbara shaking their booties at Jeff’ 60th birthday party.

two refreshed middle-aged people dancing in a garden.

He was the first Lawson male for generations not be a coal miner, and moved to London to join the civil service. After some time being generally groovy (see the photos in your Order of Service), he met Anthea and they married, honeymooning by being posted by the Civil Service to Aden, South Yemen, where I was born precisely 8 months to the day after the wedding. (They told their parents that I was premature).

london-60s

On returning to the UK, they lived in Hastings where Guy was born, and then they moved to Birmingham where he and Anthea brought us up. Times were hard, so family meals were supplemented with home-grown vegetables that were planted in Party 7 beer cans, empty 7 pint beer cans that spontaneously appeared in the kitchen over the weekend.

Guy remembers that, when he would walk us home from the bus stop where we’d meet him after work, he’d always discover a stash of sweets hidden in the undergrowth somewhere by a mysterious person known as the Magic Man, whose identity is still unknown to this day.

We remember his proud acquisition of a music centre in the 1970s, where he would listen to ELO, Abba and Alma Cogan through headphones and “sing” along.

His singing style was unique – he never believed changing pitch was as important as maintaining a high decibel count. He nevertheless never tired of telling his family that some young girl had once told him he had a lovely voice. And so he had – when he wasn’t singing.

An example of his non-singing voice was when he had to go to a training course in Edinburgh, and he recorded a series of stories about an Octopus named Oscar on his cassette player for them to listen to every night before bed during his absence.

Jeff worked for many years for the Civil Service as a Welfare Officer – a kind of staff counsellor – along with John who later became his next-door neighbour. In his spare time he used to enjoy music, gardening and amateur dramatics, as well as brewing foul-tasting but strong beer.

Tim, a schoolfriend of ours, recalls “Saturday afternoon, I’d peddled to your house to find you and your dad sat in the back garden “testing” the home brew. I remember it getting very giggly. I think we had about 3 or 4 pints each. Guy had to go to bed after 2 pints”. On his way home, Tim was arrested for being drunk in charge of a bicycle. Two other friends of mine crashed their bicycles into a steel gate on a building site – there was no fence around it, just a free-standing gate.

In the late 80s, Jeff separated from Anthea and moved to London, settling in Eltham with his new partner, Big Bruce (so named because I’m “little Bruce”) and his dog Digger of which he was exceptionally fond.

Jeff found life as a Civil Servant dis-spiriting, although he loved the Royal Parks that he helped administer. So, as soon as he could, aged 50, he retired and the last 20 years of his life were full of activity – caring for his mother, Elsie, who moved in with him, holidays (lots of holidays!), acting and directing at the Bob Hope Theatre, listening to children read at a local school, judging gardens and volunteering to use his counselling skills at Stepping Stones, a support service for those with life-limiting illnesses at Greenwich & Bexley Hospice. Ann from Stepping Stones wrote to us saying “we have so many wonderful memories of him over many years working together – in his easter bonnet and dressed up for Christmas and yet so sensitive and compassionate with all our users.”

Four years ago, the day after his mother’s funeral here, Jeff had heart surgery to replace a valve. Once he’d recovered from that, he took us all to a large villa in France where we spent a lovely summer holiday – although the restaurant meals meant he couldn’t indulge his love on elaborate and detailed menu planning.

He remained healthy for most of his retirement – as recently as Christmas he was at our house with Anthea and her new husband for Xmas dinner, and – although he was suffering from leg pain that made it difficult for him to walk – treated the family to a weekend at Centreparcs in June for his 70th birthday. After his admission to hospital, he was still texting Guy and me to arrange to visit Centreparcs again at Easter next year “when I’m better”.

His death was sudden – he’d been discharged from hospital. We were on holiday at the time, at a place he recommended, and using a map he’d sketched for us. We didn’t cut the holiday short; he’d have hated us to, especially as Dalyan was special to him.

We’re comforted by the fact that it was sudden, swift and at home; he was a private man who hated to be seen frail and would have hated to “become a burden” as he would have put it.

We remember him with love, and are grateful that you are all here to do that with us.

See you, Fifi.

guy 40 106

Reading List

On sex education for 7 year olds in UK schools

The BBC reports that Sex education should start at seven, Lib Dems say.

Of course 7 year old kids should get sex education at school; puberty is from 8 years old for girls, 9 for boys.

The whole point of education is to prepare kids for life, so you have to tell them about stuff first (hint: that’s what “prepare” means.)

Sex education results in fewer sexually transmitted diseases and fewer unwanted pregnancies. This is not only good for the people involved, but is better for the whole nation – which makes it excellent public policy.

However, “parents will retain the right to pull children under 15 out of sex education lessons” according to the Daily Mail. Why? Do we let them take kids out of Maths or Geography classes?

There should be no opt-out from parents trying to foist their religion or sexual hangups onto their children. Education > indoctrination.

Reading List

Standards ‘n’ all that jazz

French joke corner

Heard about the French chef who killed himself? He lost the huile d’olive.

Video corner

“Coders and hackers, ready to change the world, and the hackathon is the perfect place. But things don’t always go as planned…” by @ourmaninjapan

The fruitful lady of dawn

I really enjoy Brian Patten’s love poetry; he writes of joy and sadness and how the two can mingle, while never using words that you wouldn’t hear in an everyday conversation. He’s the only living poet whose works I regularly raid for my song lyrics. So when my battered old copy of his Love Poems fell apart, I invested in a shiny copy of his new Collected Love Poems.

Curiously, in a volume called “Collected Poems”, one of them is missing. It was in “Love Poems”, substantially revised from a previously published version, and revised for the better. But I can only assume Patten was still dissatisfied and so dropped it.

Because I’m talking online to some people about his poems (and who have bought his newest book on my recommendation), I’m copying the poem here so they have the text. Brian – if you want me to remove it, I will. But I think you’re mistaken; it’s a lovely piece. (And, sorry, but I stole the blue dress image for an unrecorded song called “The girl in the room”.)

The fruitful lady of dawn

She walks across the room and opens the skylight
thinking: “perhaps a bird will drop in
and teach me how to sing.”

She cannot speak easily of what she feels
nor can she fathom out
whose dawn her heart belongs in.

Among the men she knows
she knows few
who understand her freedom.

Baffled by her love and by
how she withdraws her love,
she remains an enigma,

and under the skylight
puts on her red dress calling it a blue one.
She approaches breakfast as she would a lover -

She is alive,
and one of her body’s commonest needs
I have made holy.

Reading List

Standards and tech

Freedom corner

Lonely hearts’ corner

Readers who are single may find this 80s dating video helpful. Invite me to the wedding, please.

On Internet Explorer supporting -webkit- vendor prefixes

News is just in from Microsoft that Internet Explorer on Windows Phone 8.1 Update will support legacy webkit-prefixed features.

Now, obviously I can’t speak for Microsoft or the IE team (Bill Gates despises me since I beat him in a nude limbo competition at Patrick Lauke’s birthday disco a few years back) but this brings a wry smile to my little face. It fell to me to write the blog post announcing that Opera was going to support some -webkit- prefixed CSS and be hated by the Internet for the 2.6 seconds it takes before someone more evil pops up.

Those in the know could guess this was coming. At a CSS Working Group meeting in February 2012 (search the minutes for “Vendor Prefixes”) this exchange took place:

tantek [Firefox]: At this point we’re trying to figure out which and how many webkit prefix properties to actually implement support for in Mozilla … Currently we have zero. Zero is no longer an option for us.
Florian [Opera], Sylvain [Microsoft]: Zero is not an option for us anymore either.

The reason that IE are doing it now, and we did it then, is simple. WebKit browsers, like other browsers, shipped experimental CSS with a prefix. When the CSS property was considered stable, all browsers apart from WebKit removed support for the prefixed version. WebKit browsers, however, did not remove the prefixed version, supporting it in parallel with the unprefixed syntax so that sites that had been made before the “standardising” of the property would not break.

Moreover, lazy developers only tested on WebKit browsers, so didn’t even add the -ms- prefix for Microsoft, -moz- prefix for Firefox or -o- prefix for Opera, so those browsers got a markedly worse experience.

At Opera, we did what we could with a relatively small team to contact site owners and developers and ask them to change it, but there were simply too many to deal with. It was much more effective simply to “support” those -webkit- prefixes that were the analogue of things we already supported; for example, we simply aliased -webkit-border-radius to border-radius.

Magically, lots of iPhone-only sites looked a lot better in Opera. As you can see from the screenshot comparisons in the IE blogpost, the same happens for them. It’s difficult to argue for ideological purity when a simple aliasing makes the user experience so demonstrably better – and one thing I’ve learned at Opera is most users don’t care two hoots for ideology if their favourite site works better in another browser.

It’s tempting to blame the mess on lazy developers, and they are without doubt at fault for enjoying the advantages of the Web without respecting its core principle of cross-browser compatibility. But some of the blame lies with WebKit developers, and (to a lesser extent) with the CSS Working Group for blessing vendor prefixes (though of course, browser makers just did this sort of crap anyway: scrollbar-face-color lurked around for years in IE without a prefix).

I’m very glad that the Blink rendering engine (which Opera, my employer, now uses) has abandoned vendor prefixes (and Firefox appears to have done the same.)

But, as managers around the world like to say when laying staff off because of bad management decisions, “we are where we are”. Legacy -webkit- prefixes hide in the dim recesses of sites used every day, and users deserve good experiences.

So good luck to the IE team; I’d do the same, because I’ve done the same. But I stand by my poetic words of 1 September 2012:

Vendor prefixes are like skidmarks on the underwear of web standards: sometimes unavoidable, but best washed and rinsed out as soon as possible.

Reading List