Archive for February, 2013

Reading List

NEWT, innit?



On Prince Phillip’s “Filipino nurse” comment

Prince Phillip told a Filipino nurse “The Philippines must be half empty – you’re all here running the NHS”.

The man has a history of ethnic jokes in questionable taste. But this one has a nugget of truth in it. For years, UK governments have let other, poorer nations pay to train their own nationals to be doctors, nurses or midwives, and then, when they’re ready to help their own populations we recruit them to work in the NHS here.

And what about the health care needs of the people of the Phillipines, India, Bangladesh and other major sources of health-care professionals? Not our problem.

What is our problem is that the same governments posture and prattle about curbing immigration, giving British jobs to British people, and generally promote anti-immigration feeling which they know can become racial tension.

The NHS is a vote-winner. So is sounding off about immigrants. See how it works?

The Balloon Man of Kovallam on copyright

Ten years ago (wow) I published some pictures of the Balloon Man of Kovalam that caused an amazing comment thread in which families and old friends were reunited and I learned a little of the life and death of Buck Wray, the Balloon Man.

I was digging though a couple of his books – he gave me a copy of Book #3. Here are the dedication and copyright pages.

31 December 1994
Copy #84
Ask .. Receive!
You did … so … you will!
Too easy, huh?
Go Bruce Go!
Best – loving + Lightning
by buck

You may: Xerox, photocopy, print, Re-publish, distribute “FREELY”


Notice: This book has absolutely positively NO copywrites. All materials, ideas, concepts expressions, words are stolen, from the source of ALL THAT IS. If any one claims to be the creator of originals of any of tese items listed above (with the exception of the THE WORD “lunagloriusmaxipiss”, which actually is a totally 100% New Word – However – inspired by another Source, the only Source, and I claim no exclusivity of this newly created word, since my “i” merely channeled this new big powerful word into the 3rd Dimension of Earth School for use Today), they are total fucking jerks and self-deluded liars. They did not. Could not. Can not, Did not. Copywrite laws are Bullshit, if what is created or written or created actually express Truth. If, it is Truth, it should be SHARED – FREELY. You many SHARE the contents of this book and all other books Freely with ALL THAT IS.

Enjoy, learn, have fun, SHARE Shit.

change agent
by buck

“Enjoy, learn, have fun, SHARE Shit.” Words to live by.

Reading List


Opera/ WebKit switch

Opera (my employer) announced Opera will switch to WebKit. Here are some reaction posts – I’ve noted authors’ affiliations, as many work for browsers so are not wholly disinterested parties.


  • Journal of Economic Perspectives: The Case Against Patents (PDF) – “there is no empirical evidence that they serve to increase innovation and productivity … in spite of the enormous increase in the number of patents and in the strength of their legal protection, the US economy has seen neither a dramatic acceleration in the rate of technological progress nor a major increase in the levels of research and development expenditure.”
  • As well as Opera’s WebKit announcement, we also hit the 300 million user milestone. Here are the celebration cakes across the world.


(Last Updated on 18 February 2013)

Opera and WebKit: a personal perspective

I expect by now you’ve heard that Opera (my employer for the last four and half years) has announced that its browsers will, in future, use the WebKit rendering engine. I wrote the announcement, and what follows here is my personal take on it. It’s on my personal blog precisely because it does not reflect the opinion of my employer, wife, kids or hamster.

Opera’s Presto engine was a means to an end; a means for a small, European browser company to challenge the dominance of companies who, at that time, hoped to “win” the web through embracing, extending and extinguishing web standards.

Presto showed that it was possible to make a better browser while supporting standards. Other vendors have followed this path; the world has changed.

These days, web standards aren’t a differentiator between browsers. Excellent standards support is a given in modern browsers. Attempting to compete on standards support is like opening a restaurant and putting a sign in the window saying “All our chefs wash their hands before handling food”.

Rendering engines are now highly interoperable – largely due to the progress commonly known as “HTML5”, begun by Opera in 2004, then joined by Mozilla, in order to protect the web from proprietary platforms, keep it open and promote interoperability.

It seems to me that WebKit simply isn’t the same as the competitors against which we fought, and its level of standards support and pace of development match those that Opera aspires to.

It isn’t run by a single organisation; a report on WebKit this month says “it is also noteworthy how the diversity of the project is increasing, with new players starting to show a significant activity.”

It therefore seems silly to compete against it. Instead, we’ll join and use our experience and resources to improve it further.

Although a small organisation, we’ve always played an active role in developing standards – CSS, Media Queries, HTML5, native video being high-profile examples. This is important to me; I’ve worked in my own small way for 10 years now to help protect and advance the web and want to work for an organisation that does too. So when it was announced internally that we would switch to WebKit, I worried that standards work might stop.

I asked the CEO and Engineering lead at an all-hands meeting if we will continue that work. They replied that we absolutely will continue to work on standards, and we’ll submit changes to advance WebKit. Our CTO, Hakon Wium Lie confirmed it by demonstrating internal WebKit builds that have some interesting new standards support. Today we contributed a small, symbolic patch that can bring all WebKit browsers’ CSS multi-column support to Presto’s level.

One rendering engine will go. Some lament that. Some of those who lament it seemed never to test in it, excluded it from their demos, or actively blocked it.

I’m both English and a man. That means I have no emotional life at all (so consider this carte blanche to be incredibly rude to me in the comments) but even with those two significant handicaps, I’ve found myself with a pang of regret that the Presto rendering engine will disappear. I’ve experienced that feeling before – eighteen months ago when having a final walk around the house that had been my family’s home for a decade, before getting into the car and following the removal van to the new home that we’d dreamed about.

Of course, a browser is much more than a rendering engine. Very few consumers of the web choose a browser because of its rendering engine – they just expect it to work. And if it doesn’t work as well as native apps, they’ll choose native apps.

Opera has 300 million active users —almost a third of a *billion* people— many of whom would otherwise have no access to the web. For many users around the world, a browser is more than a tool to browse the web. Sometimes it’s a school when you can afford none, sometimes it’s the only line to an outside world shut off by an oppressive regime.

The web needs to win. Browsers are highly interoperable, because all vendors know that if they’re not, they risk being overtaken by proprietary platforms. It used to be Flash and Silverlight that threatened the web. Today’s threats are proprietary app platforms and locked-in “eco-systems”. Tomorrow, new threats will rise.

Developers who care about the web will code to the standards, test across browsers and block none. We all want the same: we want the web platform to grow, to remain open, to become ubiquitous by being the no-brainer development platform of choice for all.

(Last Updated on 19 February 2013)

Notes from Edge Conf

Like many others, I found myself signing a document guaranteeing Facebook’s privacy as I wandered into their swanky offices in Covent Garden that for the day-long mega geekout Edge, a “conference on advanced web technologies for developers and browser vendors” organised by Andrew Betts and his chums at FT Labs. And his dog Shadow.

I was unsure how the format would work, as it was all panels. My experience of panels at SxSW is that they are the only way to pleasure your best friends around a desk in public without breaking the law. It worked very well, though, due to good moderation, good speakers and a highly clueful engaged audience.

The videos are going online courtesy of Pete Le Page.

Some nuggets I got from the event follow in random order.

Everyone connected to the conference is hiring: FT Labs, Facebook, Google. Most of Google were at the event. I assume they’re not all allowed to travel in the same plane, or there would be no-one in the world who understands Web Components if something went wrong. No-one from Apple or Microsoft appeared to be there.

Appcache will soon (please please please) be superseded by something called Application Controller. Here’s an example of how it will be able to deal with responsive images. See Jake’s presentation (the first 15 minutes of the offline panel).

Forcing CSS transforms to be 3D in order to get them hardware accelerated can misfire on mobile, making it less performant due to time it takes to move from CPU to GPU.

Everyone seems to agree that different vendor-proprietary manifest formats for packaged applications is bad and will inhibit uptake. No-one expressed any willingness to standardise it, though. Similarly with device APIs. Why not just all adopt the syntax that PhoneGap uses? That’s what devs are familiar with now.

Microsoft’s Pointer Events API submission to W3C is good, say Chrome people. Opera people like it too. No word from Mozilla and Apple seemed somewhat hostile. Boris Smus (I believe) was insightful about not adding a z axis for 3d gestures because it removes the mapping to the device’s input surface: what would the z axis units be?

From Remy: if you’re using Web Sockets over mobile, you must use SSL, otherwise network providers are likely to block it.

I didn’t hear any discussion of DRM (although there was plenty in the bar the night before.)

It was an excellent day, full of high quality information. Congratulations to Andrew Betts, his FT Labs colleagues and Facebook friends for organising it.

Reading List

Web Standards ‘n’ shit, f’shizzle

Interoperability corner


  • Cisco’s Global Mobile Data Traffic Forecast Update – “Last year’s mobile data traffic was nearly twelve times the size of the entire global Internet in 2000. Average smartphone usage grew 81 percent in 2012. Android is now higher than iPhone levels of data use.”
  • Power and the Internet essay by Bruce Schneier as a response to Edge’s annual question, “What *Should* We Be Worried About?”
  • Report on the activity of companies in the WebKit project – “it has evolved from a project clearly driven by Apple … to the current situation, with Google leading the top contributors … it is also noteworthy how the diversity of the project is increasing, with new players starting to show a significant activity.”
  • Galaxy versus Android at the Superbowl – “it looks like the Samsung Galaxy brand is starting to overtake ‘Android’ in consumer awareness”
  • 1% of CMS-Powered Sites Expose Their Database Passwords – Using a text editor to modify content management system (CMS) configuration files (like wp-config.php) could expose your database password to the world.
  • Apple Core Rot: Introduction – “OS X is degrading into a base for an entertainment platform. As it stands, the trend is entirely downhill for serious work … Core operating system quality is declining as resources are diverted to software development in more profitable lines: iPhone, iPad, iHaveNoRealWorkToDo products. Apple forgets its history and leaves it core professional base twisting in the wind.” (Reader comments)
  • Put Alan Turing on the next10 note – petition that I’ve signed. It seems more useful to make people aware of his work and the circumstances behind his death than issue some meaningless posthumous “sorry”.
  • Convert Word documents to clean HTML


HTML5 app manifests – are we emulating failure?

There’s a good article by groovecoder called Packaged HTML5 Apps: Are we emulating failure? which argues that “URLs delivered a better experience than native desktop apps; they can do the same for mobile apps”. groovecoder shows the shortcomings of app stores and installation processes, and suggests that a manifest/ packaging format for HTML apps would be a better experience.

And it would, except we’re currently emulating failure here too. Instead of getting together and agreeing on one standard that works across browsers, there are numerous different packaging formats which force developers to choose their platforms and thus stymies interoperability.

Here we are again. Best viewed in Netscape 4 or IE4? Here’s your multimedia, ma’am; would you like it Flash, Real Audio or Windows Media?

If only there were some kind of consortium of vendors, that strove to protect and strengthen the World Wide Web to ensure it can compete against native apps and locked-down platforms. It could serve as a mechanism for agreeing interoperable standards.

This potential “Consortium for the World Wide Web” (or “CW3” for short) could even have a middle-aged, slightly bewildered-looking Englishman as its director. I’d volunteer.

True confessions: DRM solutions that I have implemented

It’s time to come clean. I have implemented two DRM “solutions” in my time, at the command of bosses.

The first was at the request of the organisation’s brand manager, who was understandably concerned that people would right-click the organisation’s logo on the website, download it and .. well, I’m not sure what. Make branded underwear with it and sell it to unsuspecting members of the public. Or other such nefarious plots.

I protested, of course. I reminded the brand manager that the UK has a brand-new framework called “the law” which made it illegal to take other people’s content or logos and pass them off as your own. I demonstrated how I could disable JavaScript, and download the image. I pointed out that with the Web Developer toolbar I could access all images on a page and download them. I showed how to use of the found-on-every-keyboard “Print Screen” key to add the image to the clipboard, which could then be imported into an image editing program, cropped and saved.

I was over-ruled, and implemented this elegant code.

The second “solution” was a happy side-effect of a CMS that the organisation had bought which didn’t actually facilitate editing of HTML content. Therefore, the “website” was actually an HTML scaffolding for the delivery of non-web content, with the words “download the attachment below” and a PDF hanging off each URL. The web team suggested offering a Word document in addition to the PDF (that’s what the PDF was made from, anyway) as a blind user found Word more accessible with her screenreader.

However, our organisation had a local network at work, whereby anyone could edit Word docs in shared areas. A senior member of the Exec team believed that the web was the same – someone could download and edit a Word doc from our website, maliciously amend it and re-save it back to the server. PDFs, of course, are uneditable. Hence, we allowed only PDFs, some of which were locked in order to protect the logo.

The fact that no illicit underpants with the organisation’s logo were ever discovered shows the infallibility of these DRM “solutions”.

Using the main element

I’ve just changed my site to use the new <main> element. It took about 1 minute to work out what was wrong with my CSS, until I realised that I hadn’t defined main {display:block;} (the CSS spec says that all elements are inline by default, unless over-ridden). I expect that the HTML5 shiv will add this in, but I don’t use the shiv (it was written after I converted the site). If you use the html5shiv on GitHub, the latest version includes support for <main>.

If you use something like <div id=”main”> (or similar, such as <div id=”content”> as I was), simply replace that with <main role=”main”>.

The <main> element is an exact analogue of ARIA’s role="main", and is designed to show screenreaders and assistive technologies exactly where main content begins, so it can be a target for a “skip links” keyboard command, for example. It could also be used for content syndication (Instapaper-ish things); mobile browsers could zoom in on <main> when encountering non-responsive websites.

It should therefore be used once per page. Therefore, the WHATWG spec is wrong when it says “The main element can be used as a container for the dominant contents of another element.” as this suggests that it may be used multiple times. Don’t. Otherwise, the benefits will be lost.

The W3C version of the spec is far more accurate and useful:

The main element represents the main content section of the body of a document or application. The main content section consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application…

Authors must not include more than one main element in a document.

Authors must not include the main element as a child of an article, aside, footer, header or nav element.

The new element is already in Firefox and Chrome nightlies. The beauty of <main> is that it is already supported in modern assistive tech. Most of these understand aria role=main, as browsers map this to an operating system thingummy (technical term). The thingummy is what the assistive technologies interface with. So in FF nightly and webkit, the new <main> element is mapped to the same thingummy – therefore screenreaders and the like can use it straight away.

Nevertheless, I’m still using ARIA role="main" on the new element as belt-and-braces because you’re almost certainly not using Firefox or Chrome nightlies, and there’s no support yet in Opera or Internet Explorer.

Although I was initially opposed to the new element, I’m firmly in favour of using it, once per page, to give extra built-in accessibility to those who need extra help accessing the Web.

And hearty congratulations to Steve Faulkner, The Paciello Group‘s Kylie Minogue of web accessiblity, for his research and perseverance in getting this in the spec and in some browsers.