Archive for July, 2018

Winston Churchill and Tommy Robinson

LOL, the far right. They’re spreading a photo of a £5 on which someone’s drawn a speech bubble to show Winston Churchill saying “Free Tommy Robinson”. Churchill would never have approved of Mr “Robinson” Yaxley-Lennon’s contempt of court, jeopardising a free and fair trial. I made and sent them this to show them what Churchill said on July 20, 1910 in the House of Commons:

The mood and temper of the public in regard to the treatment of crime and criminals is one of the most unfailing tests of the civilisation of any country. A calm dispassionate recognition of the rights of the accused … These are the symbols, which, in the treatment of crime and criminal, mark and measure the stored-up strength of a nation, and are sign and proof of the living virtue in it.

Winston Churchill

It’s almost as if they have no real knowledge of, or respect for, British traditions such as rule of law, religious tolerance, freedom of speech etc, and mendaciously hijack national symbols (Union Jack flag, Churchill) in order to apply a veneer of “patriotism” over what’s simply racism.

Reading List

A weekly(-ish) dump of links to interesting things I’ve read and shared on Twitter. Sponsored by those nice folks at Wix Engineering who push banknotes under the elastic of my underpants in order that I carry on reading stuff.

Why are web standards so slow?

Why are standards so slow? Find out in this intricate discussion of subgrid BPMs (border/padding/margin) & the TSA (track sizing algorithm) of its parent grid in a subgridded axis.

What’s that all about? I have no idea. I suspect very few people have. But if the CSS Working Group get it wrong, it’ll be on the web —and pissing off web developers— for ever.

Also, have we defined what happens when an RTL Flexbox is inside a CSS Grid, that an ancient CMS has put in a float that’s in a display: table-header container? No-one will ever be mad enough to do that, you say? But, yes, they will, so behaviours need to be defined so browsers are interoperable.

And all of this conversation has to be done asynchronously over GitHub or mailing lists so that all interested parties can contribute, across timezones, to fit the schedules of people across the world, some of whom do Standards full-time, some of whom do it as a part of their jobs, and some of whom do it afterhours.

And that’s why web standards are so slow, and so powerful — they’re made in the open, for everybody.

Addendum, 27 July 2018:

I didn’t want this to suggest that because standards are necessarily slower than company X magicking up some Proprietary FlimFlam™, therefore progress on the web platform must be slow. Many standards are retrospective: an encouraging example is document.querySelector, which saw the usefulness and community adoption of jQuery, and therefore baked the idea of using CSS selectors in JavaScript into browsers.

Standards such as Houdini are explicitly designed to open up the black box of browsers’ super-optimised CSS flux capacitors so developers can polyfill upcoming/ putative CSS features without having to replicate the whole system in order to tweak part of it. If you haven’t read up on Houdini, a good starting point is Houdini: Maybe The Most Exciting Development In CSS You’ve Never Heard Of. For the philosophical background, read The Extensible Web Manifesto.

With the excellent browser interoperability that HTML5 ushered in, the unlamented death of vendor prefixes and plugins, and the near-ubiquity of evergreen browsers, the future of web development is so bright I gotta wear shades.

Reading List

A weekly (-ish) dump of links to interesting things I’ve read and shared on Twitter. Sponsored by those nice folks at Wix Engineering who hurl money at me to read stuff.

Reading List

A weekly (mostly) dump of links to interesting things I’ve read and shared on Twitter. Sponsored by those nice folks at Wix Engineering who hurl money at me to read stuff.

Lady Merchant

My Lady Merchant, although Fortune favours folly,
She won’t smile on me for the things I tell you now.
When you calculate all your losses and your profits,
you’ll know that I did everything that you would allow.

My Lady Merchant, although you fear Time is flying,
there’s no-one you can bribe to clip his chariot wings for you.
When you balance up all your selling and your buying
You’ll know that I did everything that you asked me to.
You’ll know that I did everything that you would let me do.

Words and music © Bruce Lawson 2018, all rights reserved.

Reading List

CSS-in-JS: FTW || WTF?

Here’s the video of my closing keynote at CSSDay.nl. trigger warning: swearing, potatoes, Rembrandt and naked feet. And here are the slides, so you can follow along at home.

Content needs a publication date!

Dear everyone who writes content: please put publication date (and last updated, if applicable) right at the top of your article.

I’ve been bitten so often by out-of-date content (that’s still highly ranked by search engines) that now I look for a date before I start reading. And scrolling to the end of an article to find it, and then back up to start reading, is a pain in the gonads.

As Gerry McGovern writes,

On the Web, nothing is more damaging to your organization’s reputation and brand than out of date content.

and if you don’t have a prominent date on your content, it might as well be out of date. How can I trust it if I don’t know how current it is?

It’s good if the date is baked into the URL (I configured WordPress to show the year in the URL) but that’s not enough because some browsers (especially mobile) don’t show full URLs or the address bar all the time. Simply have it in good old fashioned plain text, near the article’s title.

I mark mine up with microdata as suggested by schema.org (founded and used by Google, Microsoft, Yahoo and Yandex) in the hope that their search engines will prioritise newer content. pubdate and title are required by Apple’s WatchOS because, well, being needlessly different makes web development more fun.

Here’s the relevant markup:


<article itemscope itemtype="http://schema.org/BlogPosting">
<header>
<h2 itemprop="title">
<a href="https://www.brucelawson.co.uk/2018/reading-list-201/">Reading List</a></h2>
<time itemprop="dateCreated pubdate datePublished"
datetime="2018-06-29">Friday 29 June 2018</time>
</header>
<p>Some marvellous, trustworthy content</p>
<p><strong>Update: <time itemprop="dateModified"
datetime="2018-06-30">Saturday 30 June 2018</time></strong>Updated content</p>

Whether your content is technical, financial, news or a list of schools closed because of snow (yes, one year I kept my kids at home because a three year old article surfaced at the top of a Google search!), reassuring me that your content is current is, to me at least, just as important as serving it over HTTPS.

Thank you for sharing your marvellous stuff! Please encourage me to read it by establishing my trust in it.

kthxbai.