- The Golden Link o’ the Week: Introducing Pokedex.org: a progressive webapp for Pokémon fans – “works offline, can be launched from the home screen, and runs at 60 FPS even on mediocre Android phones. This blog post explains how I did it.” A superb blogpost by Nolan Lawson.
- Progressive Web Apps Are the Future – video with Andreas Bovens (Opera) and Alex Russell (Google) from Chrome Dev Summit
- Firefox to support Progressive Web Apps, too – so, who’s next? Microsoft or Apple? Place your bets!
- Building an Offline Page for theguardian.com – a useful real-world Service Worker case-study
- Raspberry Pi Zero: the $5 computer – or free as a magazine covermount. Built in Wales. Hurray UK! Craig Lockwood sums up my feelings well in his post We have come a long way, baby.
- flexbugs – “A community-curated list of flexbox issues and cross-browser workarounds for them”.
- Building HTML5 Form Validation Bubble Replacements – if you really have to (Marketingestapo have a gun to your dangly bits) here’s how to do it
- Seriously, Don’t Use Icon Fonts – “It’s time to let icon fonts pass on to Hack Heaven, where they can frolic with table-based layouts, Bullet-Proof Rounded Corners and Scalable Inman Flash Replacements.”
- Fontdeck to close. “Fonts will stop being served on 1 December 2016.” (Note: *next* year!) Migration plan etc in the link. The reason? “As neither OmniTI nor Clearleft have the resources to take Fontdeck to the next level, we had no desire to traipse around the Valley with a begging bowl; instead we took the decision to retire Fontdeck rather than let it wither on the vine.”
- Unicorns and Bubbles in which Baldur Bjarnason writes “startups are generally staffed by cowboy coders who stack up lines of technical debt faster than a monkey playing Tetris”
- Responsive Issues Community Group newsletter – it’s out every 2 weeks. You can sign up.
- Opera Max now also helps you save data while streaming music – free Android app compresses audio and video by up to 50%, so less stuttering media and more vids for your data plan. (Instructions on how to get more out of your Opera Max.)
- [blink-dev] Intent to Remove: Insecure origin usage of geolocation – Should Blink remove support for geolocation on insecure pages? Opera’s Simon Pieters suggests a staged removal.
- TIL – Autocomplete and forms by Raymond Camden
- Google can remotely bypass the passcode of at least 74% of Android devices if ordered – Android devices without full disk encryption (those older than Android 5.0) can easily be remotely reset by Google (if compelled by a court order).
- WordPress joins the PHP to Node train
- Decommissioning a free public API – “relying on a free service you have no control over means adding a single point of failure on a volunteer basis” (by author of a side-project API that some set-top box manufacturer depended on
- How A Rural Community Made Its Own Phone Network In South Africa – “there is no electricity to charge cell phones and that people have very limited funds to spend on mobile airtime”
- Opera’s Engineering Team meetup – evil bosses made me go to the south of France for an all-hands engineering meetup. Here’s a 4min video.
- “Out of Sight, Out of Mind” campaign on ‘invisible disability (including mental health), with an short piece Nicky asked me to write about my multiple sclerosis for the campaign launch
- HTML5 is the New Flash by Steve Pemberton (chair XHTML2 Working Group)
- Sky Q website – party like it’s 2003 and you have Shockwave installed.
Archive for November, 2015
Perhaps the funkiest, happiest song I’ve ever written. The tune and first verse were written while I was at university, and forgotten. Then a friend said two weeks ago “I guess I’m falling in love” while we were discussing her nasty bout of the unrequiteds. I remembered the song, wrote the rest, recorded it last weekend and mixed it yesterday with the help of Shez, my old friend and bass guitarist. A mere 27 years from conception to completion.
The bass was recorded in one straight take (the 57th take, to be precise). I wanted it tense and urgent, after Amy Lowell’s poem Vernal Equinox — “Why are you not here to overpower me with your tense and urgent love?”.
(Last Updated on 26 November 2015)
Four and a half years ago I was moaning (me!) about the state of Installable web apps and interoperability (TL;DR: laughably crap). Everybody listened to me, and made them better. Well, actually, they didn’t, because I was wrong; I still believed in the notion that it was a good idea to download a static snapshot of a site, thereby losing all the immediacy and linkability of web publishing.
Recently, Progressive Web Apps have come on the scene. Alex Russell wrote an excellent explainer Progressive Web Apps: Escaping Tabs Without Losing Our Soul, or — if you prefer a video — here’s Alex and Andreas Bovens, Product Manager of Chromium-based Opera for Android, explaining why Progressive Web Apps Are the Future.
At their simplest, Progressive Web Apps are application-like things hosted on your web server. If you’re as old as me, you might call them “web sites”. They also point to a manifest file, which gives some light metadata about icons, default orientation and the like. In conforming browsers (currently, Opera for Android, Chrome for Android and, forthcoming, Firefox too) you can “save” the app to your homescreen. The relevant icon from the manifest is placed on the device’s homescreen which can then be tickled into life with your digit, indistinguishably from a native app: over HTTPS, if you so define it in the manifest, it can open in a default orientation and with no browser UI; with Service Worker, it can work offline.
Crucially, in browsers that don’t support it, you have a normal website. It’s perfect progressive enhancement.
There are differences in implementation; Opera and Chrome are working closely to see what works best. Opera’s implementation currently differs from Chrome’s in four main ways:
- HTTP-hosted sites will only display with browser UI, regardless of what the manifest states, because they’re less secure.
- when the user follows a link that takes the user out of the domain of the installed app, a new tab is spawned, with browser chrome. (Chrome shows a small address at the top of a standalone-app. We prefer to make it more obvious to the user that they have gone outside your app.)
- Opera doesn’t (yet) support background_color; this will be added in a forthcoming release.
- Chrome has a mechanism to suggest to a user that they add a site to Home screen called App Install Banners, depending on certain heuristics — primarily, a Service Worker so they work offline, responsiveness and demonstrated repeated engagement with a site.
Opera is still experimenting with heuristics (and Chrome are tweaking, too). I’m convinced by Stuart Langridge’s argument that requiring “repeated engagememnt” may slow adoption:
Native apps get to say “install our app” without providing a link, a QR code, whatever: people know how to do that… [with Progressive Web Apps] I still can’t say it, because you have to come back twice over two days. How popular would Clash of Clans be if you couldn’t install it until the second day you played it, I wonder?
[Note that since Stuart wrote this, the criteria for “engagement” by a user in a site changed from twice in two days into twice, at least 5 minutes apart.]
I think there should be a mechanism for discreetly — unspammily — alerting a user that a site is a Progressive Web App on first visit. But I’m not King of Opera for Android; however, I know the man who is (Andreas Bovens).
But how good are Progressive Web Apps, anyway? Is it even possible to write a really good app using web technology without the Reactembengular Framework?
Here’s the FlipKart Lite Progressive Web App (see their video at Chrome Dev Summit).
Nolan Lawson (great name, great guy) has written Pokedex.org: a progressive webapp for Pokémon fans and blogged about it in detail (it’s a fantastic blog post; I urge you to read it). Nolan writes
I am super excited about this app, because it demonstrates that you can build an offline, 60FPS mobile app using *only* web technologies. Of course it’s offline-first (PouchDB, LocalForage, ServiceWorker, Cloudant), so you can browse all your fav Pokémon without a connection.
I’m super excited, too. Soon, this will be possible on all three cross-platform browsers. It’s also possible to add tell an app to be homescreen-able in iOS. No news from Microsoft, but they’re doing good things with the W3C Manifest in their manifold.js.
Want some web standards retro fun? Go to this Inbox Attack game in Opera for Android, add it to homescreen (the + button in the URL bar) and then tap its homescreen icon. It’s made with manifest, SVG and the vibration API.
If you’re interested in making a Progressive Web App, here are some resources to get you started.
- The Web Manifest specification – an article i wrote with Marcos Cáceres, the spec author
- Manifest Generator. It’s very possible that your site already has much of the information that the manifest format needs. This generator that I wrote with Stuart Langridge will spider your site and attempt to construct a manifest file you can download and deploy.
- Introduction to Service Worker
- Service Worker Cookbook by Mozilla
Go forth and make great apps that don’t require installs or updates, are of the web, with URLs and which are progressively enhanced. Hurray!
- This week’s Golden Link: Service Worker Cookbook from Mozilla “is a collection of working, practical examples of using service workers in modern web apps”
- Progressive Web Apps 30 minute video from Chrome Dev Summit session with Alex Russell (Google) and Andreas Bovens (my boss, Opera).
- Manifest Generator by me and Stuart Langridge mentioned in the video above, that scours your site for metadata and tries to make a manifest that you can download. Beta!
- Better specifications for the sake of the Web – w3c blog by Virginie Galindo (@poulpita). TL:DR: summarise, don’t fragment, diagrams, examples.
- After Endless Demonization Of Encryption, Police Find Paris Attackers Coordinated Via Unencrypted SMS
- Job ad: Senior User Experience Designer Opera’s looking for one to work on Opera for Android with my nice boss, Andreas Bovens. “While professional UX experience is required, talent and ambition are your best assets”. Tell ’em I sent you.
- Talking of which, A Recruitment Evening for Technically Talented Disabled People — BBC seeks web developers with disabilities.
- Applying Flexbox to the Video Player – Laura Kalbag makes a video player even more responsiver with Flexbox
- My captioning workflow – Using YouTube’s captioning tools to make video more accessible: step-by-step guide by Michael Lockrey
- Fronteers 2015 videos and every single one has ME in it!
- Interoperability Case Studies – BlinkOn 5 presentation by @foolip (Opera) and @RickByers (Google)
- Interview with Gramneenphone CEO (the leading telecommunications service provider in Bangladesh) – “Although people in remote areas in Bangladesh still have no access to proper education and heath services, they are changing their lot just using internet as the power of internet is huge.”
- Talking of connecting the unconnected, Opera won Best Disruptive Innovation award at AppsAfrica for sponsored web pass with 1 million free days of web access
- Quantum computers a step closer to reality after silicon coding breakthrough
- The Day Google Deleted Me – I’ve endorsed Terence Eden on LinkTin for his wildly inventive swearing in this
- Miss Amazing – a beauty pageant for women with disabilities “judged on their levels of self-confidence” (Nothing to do with web development, but I liked it)
For those who don’t know, “a11y” is short for “accessibility” — the practice of ensuring web sites (and apps) are usable by people with disabilities.
Anyway, Heydon Pickering, a chum of mine from Bury St Somerset O’Groats in rural England, has collected some music made by people from the accessibility (and wider web standards) world, and is selling an album of it for £3, all of which will go to two worthy causes: NVDA, a free open-source screen reader to help people with visual disabilities access the web, and Parkinsons UK.
The track list is pretty varied, from novelty to folk to psychedelia. There’s even a song by me on it, called Imprecise and Infrared, which Heydon described: “Your song has been stuck in my head 4 days out of 5 for the last four months, you catchy fuck.”
It would make a lovely Xmas prezzy, and owning it will make you (up to) 74 times more sexually desirable. So why not buy it?
- Gold: Progressive Web App: A New Way to Experience Mobile – write-up by Flipkart on how they made Flipkart Lite, an installable web app, with HTML Manifest and Service Worker
- Talking of Service Worker, Making a Simple Site Work Offline with ServiceWorker is a great intro
- Also, My first Service Worker – Jeremy Keith reminisces about his first time
- The Cost of Frameworks – International glamourpuss @aerotwist wrote up his excellent @ffconf talk.
- In defense of the Reset button… by Raymond Camden
- PSA: don’t use gradient generators by Ana Tudor
- Houdini meeting, Japan – interesting stuff from Apple on declarative “crazy scroll things”, touch and gestures without running script
- Beyond the Rack -“Beyond the Rack re-engages users on the mobile web, increasing revenue per visit by 26% with push notifications”
- The Realities of Installing iBeacon to Scale fledgling problems with the Physical Web
- The ethics of ad blocking written up in Oxford University’s “Practical Ethics”
- Your Unhashable Fingerprints Secure Nothing
- Peering Into The Minds Of The 4.3 Billion Unconnected – “These are people who mostly can’t tell what the X at the top-right of the screen does, or what “sign up” means, or what a username and password are”
- How Opera’s video compression technology works – not technical but a maybe-interesting overview
- Talking of which, Opera Mini for iOS beta (featuring video compression) if you’d like to sign up.
- WebGL 2.0 – presentation by Zhenyao Mo, and Ken Russell of Google
- OK Computer: how to work with automation and AI on the web by Peter Gasston
- A better paywall ecosystem with content passes – “There is declining but unfortunately still significant cohort of people who think all content “wants to be free” or similar nonsense” by Andrew Betts
Number 6 in a series of poems I’ve been writing for 30 years. Amsterdam, October 2015.
Locked in this box
I have a seashell
that whispers to me
of white foaming surf and starfish,
of sirens and islands,
of sails and whales
and a voyage to see
a ballet of almond trees.
When there is no melody to be heard,
when this silence crushes,
I listen to my seashell —
it reminds me how to sing.
And I can smell oysters and dead fish;
And I can hear the wind groaning in the rigging;
And I can touch seaweed slime and driftwood;
And I can taste salt spray on my lips.
Then I hide it in this box, away, again.
- Future of HTML – some soul-searching at W3C TPAC meeting on future of HTML5 spec vs WHATWG HTML Living Standard, and Steve Faulkner’s thoughts (on Medium; he’s so Thought-Leader)
- Is Google usable? – an eye-opening usability lab video of a featurephone user’s first contact with the web, trying to type a search term into Google on a smartphone
- Three years with CSS Grid Layout – self-appointed Grid Cheerleader Rachel Andrew writes on how the spec’s evolved as she’s waved her pompoms
- Building an offline page for theguardian.com “How we used service workers to build a custom offline page for theguardian.com”
- Background Synchronization – “A design and spec for ServiceWorker-based background synchronization”
- The Web Payments Browser API– a proposal for an API that “enables web developers to register payment instruments (credit card, PayPal, Bitcoin, etc.), initiate requests for payment, and acknowledge requests for payment.
- Less content marketing, more quality content – “Telenor of Norway deleted almost 90% of their pages. Conversions went up by 100%. support requests went down by 35%”
- Full support for network interception using Service Workers in Firefox 44 Developer Edition.
- CSS Round Display Level 1 – extending CSS for circular displays. Draft by LG, with watches as the usecase.
- Things To Avoid When Writing CSS by Heydon Pickering (and part 2)
- <panels> and <panelsets> – proposed new HTML thangs. Write-up by permaglam Leonie Watson.
- Opera Max data-saving app to come bundled on Samsung, Xiaomi phones. We expect 100 million Android devices to ship with Opera Max by 2017.
- Petition – Government to abandon all ideas of trying to ban strong encryption “At 10,000 signatures, government will respond to this petition. At 100,000 signatures, this petition will be considered for debate in Parliament”. (UK folks only. But please sign).
- Internet browsing history – Freedom of Information request for “all websites visits made through parliamentary PCs made by MPs or their staff during the past 12 months.”
- Metadata of emails sent to and from the Home Secretary F.O.I. request – because if you’ve nothing to hide, you’ve nothing to fear.
- The changing form of the web browser – thought-piece by Peter Gasston
Top quality rant by Linus about “compiler masturbation” – One day, I’ll tell him exactly what I think about Git’s command line.
(Last Updated on 25 November 2015)
Here’s a video of a keynote talk I gave on Friday at Velocity Conference, Amsterdam. It was my last conference talk of the season, and the end of 4 weeks on the road.
I’m quite proud of it, for a number of reasons; firstly, because I was nearly sick with nerves but I look quite relaxed. (Look at how many people were there – and this is only half the room! Photo by Scott Jenson)
The second reason I’m pleased with it is because it explains why I (personally) do what I do. I was born in Yemen, lived in Africa and Asia and lament the Western-centricity of so many organisations, which manifests in their websites. It took a great deal of research, but it was worth it – some of the numbers, demographics and facts startled many audience members, and made a fair few of them realise that it truly is a worldwide web, not a wealthy western web.
Many people came up and expressed shock at the image of the true size of Africa. When people hear that the United Nations predicts the population of Africa will increase from its 1 billion now to 2 billion by 2050 and peak at 5 billion in 2100, they have visions of some Malthusian mass-starvation catastrophe. But, because of the Mercator Projection, few realise how damn big Africa is. For a fascinating and encouraging look at population trends, I thoroughly recommend Dr Hans Rosling’s 1 hour presentation Don’t Panic – The Facts About Population. It’s entertaining, evidence-driven and deeply, deeply humane.
There’s a 5MB PDF of the slides, too, containing links to resources. I also wrote an article Making websites that work well on Opera Mini.
(Last Updated on 7 December 2015)
Here’s a song I started writing in Pokhahra, Nepal, under a skyline dominated by the Annapurnas (hence the Nepalese temple bell sample), while thinking about childbirth: how the delivery of my kids felt like a miracle, yet it’s so commonplace – millions of babies are born every year.
Then I thought about the unconditional love one has for one’s kids, and then the ordinary miracle of feeling love for anyone. So it’s about all of that, and joy and sorrow, related hippie bollocks, and mountains too. I love the sea, and I love mountains.
The second verse was completed in March this year in Barcelona. I’d hoped to have it recorded and mixed before my friend had her baby, but a month of travel prevented mixing and he was born at the weekend. Hurray!
Title suggested by Brian Patten’s Fruitful Lady of the Dawn.
It’s for you, please don’t think twice.
No words are wasted in this offering;
Take it now; no sacrifice;
freeing me, it’s freely given.
These gifts won’t fade;
It’s renewed every day
This may seem commonplace and unremarkable –
it’s the ordinary miracle:
Mundane, banal and trivial;
Comic-fodder for the cynical.
I give my unconditional love to you.
I never saw a clearer moon
from the Annapurnas to the Pyrenees.
I hope you don’t learn too soon
that freedom that is granted doesn’t set you free.
This light will glow –
I hope you see it when you go.
It’s for you – hold out your hands.
I’ll waste no more words in this offering.