Introducing Slowww - the slow web server


A digital watch.

This experiment has now ended. The code is available on https://gitlab.com/edent/very-slow-website One thing most websites try to do is try to serve you the page as fast as possible. So I've decided to do the opposite. I've made a (toy) web server which goes as slow as humanly possible. You can visit it at http://slowww.rf.gd - but you'll need to be patient. This delivers a page at about 175 bits per second. Yes, bits. Not bytes. It is deliberately set to be about as fast as an adult…

Continue reading →

Adding Web Monetization to your site using Coil


A tiny lego Storm Trooper eats a chocolate coin.

Recently, my blog was featured on Coil's list of monetised content. I'd like to take a little time to explain what Web Monetisation is, how to get set up with it, and what my thoughts are. Quickstart Stick this line in the <head> of your HTML page. &lt;meta name=&quot;monetization&quot; content=&quot;$ilp.uphold.com/ieELEKD7epqw&quot;&gt; That's it. You should replace my uphold address with your own. Unless you want me to get paid for your work. What is web monetisation This is a draft …

Continue reading →

Semantic Dates in Wagtail Blog Posts


The HTML5 Logo.

(Written because I couldn't find an easy guide online.) Here's the code (formatted for readability): &lt;time datetime=&quot;{{page.first_published_at|date:&quot;c&quot;}}&quot;&gt; {{page.first_published_at|date:&quot;j F Y&quot;}} &lt;/time&gt; You can also use last_published_at if it is a page which has been updated. WHY?!??! Semantics. HTML5 contains the <time> element. The contents of it show up as normal running text, but the metadata gives information to anything that reads the…

Continue reading →

One Avatar To Rule Them All


A photo of Terence wearing a hat. He look gorgeous!

Someone took a nice photo of me recently. I'd like to use it as my avatar photo everywhere to present a consistent image. This is not easy to do. I've had to manually change it on a dozen different Slacks, a bunch of social networks, a few forums, all my email accounts, and I'm still not done. I just want to change my photo once. Because I'm vain and lazy. For a nerd like me, the solution is obvious: My latest avatar image has a permanent web address - https://edent.tel/avatar. When I…

Continue reading →

Should panoramic images be part of the HTML5 specification?


360 view of the inside of the concert hall.

Noodling thoughts. The humble <img> element is one of the oldest parts of HTML. It allows you to put a static image in a document. Later revisions allowed for animated images - like GIFs. And the <map> element made parts of the image clickable. But what about interactive images? Like panoramas and photospeheres? Here's a 360° image. You can drag it to see all around. That uses the fantastic Pannellum JavaScript Library. At the moment, there's no native way to represent that in HTML. If …

Continue reading →

The future of the web, isn't the web


A fist emerges from a computer screen and punches the user.

My friends, and former employers, at the Government Digital Service have written a spectacularly good blog post "Making GOV.UK more than a website". In it, they describe how adding Schema.org markup to their website has allowed search engines to extract semantic content and display it to a user. For example, the "Learn to drive" page has content which can appear directly in a search engine: Even better, if you ask Siri / Google / Alexa for something, it can give an answer from an…

Continue reading →

Introducing the new HTML element - welcome <clippy>!


Hello! It looks like you're writing a blog post - would you like help with that? chuckles Me and my colleagues at Microsoft have decided that the world needs more Clippy - the adorable animated paperclip. To help with that, we're bringing a new feature to Edge 6.0. Web Developers can now use <clippy> to call up an animated virtual assistant. I've spoken to several people in Microsoft, and we all agree it is a good idea. We looked through a number of great software projects (mostly from…

Continue reading →

How much would it cost to buy every domain name?


Glowing computer text showing dot com dot info etc.

The ridiculous proliferation of TLDs (Top Level Domains) continues unabated. I wondered how much you'd have to spend to secure your name on every TLD. tl;dr;tld Over $300,000! (Roughly €280.000 / £245,000.) But... This estimate is pretty rough. A few caveats: This only covers one version of your domain name - it doesn't cover misspellings. I've assumed a single year of registration. Some domains give discounts for multiple years, or only offer multi-year registration. Some TLDs have a di…

Continue reading →

A report from the AMP Advisory Committee Meeting


A lightning bolt logo.

I don't like AMP. I think that Google's Accelerated Mobile Pages are a bad idea, poorly executed, and almost-certainly anti-competitive. So, I decided to join the AC (Advisory Committee) for AMP. I don't want them surrounded with sycophants and yes-men. A few weeks ago, a bunch of the AC met in London for our first physical meeting after several exploratory video calls. These are my impressions and highlights of the meeting. You should also read the official minutes to get a more rounded…

Continue reading →

Automatic preview image based on screenshot


The HTML5 Logo.

When you share a URl on services like Twitter and WhatsApp, they often display a preview image. This is usually accomplished by the author of the page selecting an image from the page, and adding it to the Page's metadata like this: <meta property="og:image" content="http://example.com/preview.png"/> (See the OpenGraph Protocol and Twitter's Guide for more detailed information.) But not every page has an obvious "hero" image. You can use the same default icon for all previews - but that…

Continue reading →

Limitations of HTML's title element


The raw HTML displays in the tab.

How much do you know about the humble <title> tag? It has been there since the earliest HTML specification. The 1995 spec says: There may only be one title in any document. It should identify the content of the document in a fairly wide context. It may not contain anchors, paragraph marks, or highlighting. Remarkably little has changed in the intervening decades. The modern HTML5 spec defines it as only containing text. That means you can't nest tags inside it. For example, this is…

Continue reading →

The Browser Is The User's Agent. But Who Is The User?


An alert box saying "⚠ Be careful when playing MP3s - check your country's copyright laws before proceeding ⚠"

I spent 15 years in the mobile phone industry - working variously for big mobile operators, with phone manufacturers, and consulting with industry groups. I say this not to brag, but to let you know that I have experience with these matters. Web browsers are often called a User Agent. They are a software agent acting on behalf of their user. So what happens when the browser acts against the interest of their user? This isn't a theoretical question - there's a long history of browsers which…

Continue reading →