<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>thoughts &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/thoughts/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Sun, 29 Mar 2026 10:49:49 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>thoughts &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Which age-gates should be skill-gates and vice-versa?]]></title>
		<link>https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/</link>
					<comments>https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 23 May 2026 11:34:31 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[thoughts]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=68406</guid>

					<description><![CDATA[In the UK, it is illegal to buy alcohol if you are under 18.  Similarly, in most countries, you cannot vote until you have reached a specific age.  These are age-gates. You do not need to prove your competence to drink, vote, smoke, or get married; you just need to be old enough.  Some things have skill-gates. If you want an amateur radio licence in the UK, you need to pass an exam. You can be…]]></description>
										<content:encoded><![CDATA[<p>In the UK, <a href="https://www.gov.uk/alcohol-young-people-law">it is illegal to buy alcohol if you are under 18</a>.</p>

<p>Similarly, in most countries, you cannot vote until you have reached a specific age.</p>

<p>These are age-gates. You do not need to prove your competence to drink, vote, smoke, or get married; you just need to be old enough.</p>

<p>Some things have skill-gates. If you want an amateur radio licence in the UK, you need to pass an exam. You can be any age<sup id="fnref:age"><a href="https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/#fn:age" class="footnote-ref" title="OK, realistically you have to be old enough to read, write, and communicate. But there's no legal barrier to a precocious 3 year old taking and passing the exams." role="doc-noteref">0</a></sup>.</p>

<p>Similarly, most jurisdictions allow you to get a medical licence once you have passed the requisite tests<sup id="fnref:doogie"><a href="https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/#fn:doogie" class="footnote-ref" title="As seen in the insightful documentary series &quot;Doogie Howser, M.D.&quot;" role="doc-noteref">1</a></sup>.</p>

<p>There are also activities which are dual-gated. You can only get a driving licence after passing a test, but you can only apply to take the test once you are a certain age.</p>

<p>Where should society swap age-gates and skill-gates?</p>

<p>Perhaps the big one is voting. The <a href="https://www.gov.uk/government/publications/representation-of-the-people-bill-policy-summaries/votes-at-16">UK is preparing to extend the franchise to all 16 and 17 year olds</a> - but why is there an age-gate at all?</p>

<p>Children are affected by politics, they pay tax on the goods they buy, they exist in the world. Why shouldn't they vote?</p>

<p>The <a href="https://shkspr.mobi/blog/2013/01/votes-for-children/">usual argument is that they are too immature</a>. But maturity isn't dependent on age. Idiots are allowed to vote. Centenarians with no stake in the consequences of their politics are allowed to vote. People who don't understand what powers a government has are allowed to vote.</p>

<p>Would it <em>really</em> be so bad to introduce a voting licence? Make people take a short quiz to ensure they understand what they're voting for and why they're voting.  Perhaps there are concerns about disenfranchising eligible adults (but not mature children) or that the state will rig the test (when they could rig the election) or whatever. But if we're sticking with the fiction that some people aren't mature enough to vote then we <em>must</em> give disenfranchised people a chance to prove their maturity.</p>

<p>You could make the same argument about driving. If a 7 year old is able to demonstrate mastery and control of a vehicle, are they likely to be a better driver than a 90 year old who has never taken a modern test?</p>

<p>Alcohol is different. We realise that the drug is harmful and <em>especially</em> harmful to developing humans. So we age-gate it. But do people really understand the health risks? Should you have to pass a test in order to imbibe? We make the people selling alcohol pass somewhat rigorous skills assessments. Perhaps the burden of proof should be reversed?</p>

<h2 id="wait-do-you-really-believe-all-this"><a href="https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/#wait-do-you-really-believe-all-this">Wait, do you really believe all this?</a></h2>

<p>No, not necessarily.</p>

<p>I find it fascinating that different cultures set different limits on people's activities. I wouldn't like to live somewhere that allowed anyone to drive on the public roads. Similarly, I don't particularly want governments restricting who can vote based on an arbitrary assessment.</p>

<p>But where are the limits? Why is the <a href="https://en.wikipedia.org/wiki/List_of_minimum_driving_ages">legal driving age so variable</a>? Why are some <a href="https://www.jalopnik.com/1988281/hardest-easiest-countries-to-get-drivers-license/">driving tests easier than others</a>?</p>

<p>Do you want a teenage doctor diagnosing you - even if they are legally certified? Should you be able to use a radio without passing a test if you're a legal adult?</p>

<p>Which age-gates and skill-gates do <em>you</em> think should be flipped?</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:age">
<p>OK, realistically you have to be old enough to read, write, and communicate. But there's no legal barrier to a precocious 3 year old taking and passing the exams.&nbsp;<a href="https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/#fnref:age" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:doogie">
<p>As seen in the insightful documentary series "Doogie Howser, M.D."&nbsp;<a href="https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/#fnref:doogie" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=68406&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2026/05/which-age-gates-should-be-skill-gates-and-vice-versa/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Mapping in HTML - a proposal for a new element]]></title>
		<link>https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/</link>
					<comments>https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 24 Aug 2017 11:14:05 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=25509</guid>

					<description><![CDATA[This is a sketch of a proposal for a new HTML element to simplify displaying maps on a website. I&#039;d like your comments and criticisms before I submit it.  This is born out of my frustration of using different JavaScript mapping solutions - my phone has a mapping app, why do I need to share my location with a website and their mapping provider?  At the moment, if I want to use Google Maps, or…]]></description>
										<content:encoded><![CDATA[<p>This is a sketch of a proposal for a new HTML element to simplify displaying maps on a website. I'd like your comments and criticisms before I submit it.</p>

<p>This is born out of my frustration of using different JavaScript mapping solutions - my phone has a mapping app, why do I need to share my location with a website and their mapping provider?</p>

<p>At the moment, if I want to use <a href="https://developers.google.com/maps/documentation/javascript/adding-a-google-map">Google Maps</a>, or <a href="http://leafletjs.com/examples.html">OpenStreetMap</a>, or <a href="https://carto.com/docs/carto-engine/carto-js">Carto</a>, or any other mapping provider, I have to load in a bunch of external JavaScript and then add <code>&lt;div id="map"&gt;&lt;/div&gt;</code> to my markup.</p>

<p>How about we get rid of all those external libraries as a dependency?  Let's do what we did with <code>&lt;video&gt;</code> and make mapping a first class element.</p>

<p>It's quite common to suggest new HTML elements based on popular <code>&lt;div id="..."&gt;</code> - that's how we got <code>&lt;nav&gt;</code>, <code>&lt;footer&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;audio&gt;</code>, and the like.</p>

<p>I'd like to propose a new tag:</p>

<h2 id=""><a href="#"><code>&lt;geo&gt;</code></a></h2>

<p>(In an ideal world, this would use the <code>&lt;map&gt;</code> element - but that has already been taken by <a href="https://www.w3.org/wiki/HTML/Elements/map">image maps</a>. It could equally be called <code>&lt;mapping&gt;</code>, <code>&lt;maps&gt;</code>, or similar.)</p>

<h2 id="use-cases"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#use-cases">Use cases</a></h2>

<ol>
<li>As a user of a website, I want embedded maps on a website to offer a fast and consistent experience.</li>
<li>As a user, I don't want to share my location with a website.</li>
<li>As a user, I want access to my devices' mapping features when I view a map on the web.</li>
<li>As a developer of a website, I want to take advantage of any in-built mapping software the user has, rather than use a 3rd party library.</li>
</ol>

<h2 id="dive-in"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#dive-in">Dive in!</a></h2>

<p>This is a sketch of how a <code>&lt;geo&gt;</code> element could be used.  This doesn't cover all use cases, it misses out important things, it glosses over problems.  This is a prototype for others to critique.</p>

<h3 id="display-a-map-centred-on-a-specific-location"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#display-a-map-centred-on-a-specific-location">Display a map centred on a specific location</a></h3>

<pre><code class="language-html">&lt;p&gt;Visit our restaurant!&lt;/p&gt;
&lt;geo location="51.75026,-1.248338"&gt;
   Your browser doesn't support interactive maps.
   &lt;img src="..."&gt;
&lt;/geo&gt;
</code></pre>

<p>Fairly simple. A block element which takes a <code>location</code>. It includes a fallback experience - just like the <code>&lt;video&gt;</code> element.</p>

<p>If the user has a mapping app installed on their device, that will be used to provide the map. That will give the user access to all the mapping features they regularly use (favourite places, routing, preferred map styles, street view).</p>

<p>If they don't have a mapping app installed, the browser can provide that service - or the web developer can specify a fallback solution.  Just like HTML5 Video.</p>

<h2 id="location"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#location">Location</a></h2>

<p>I envisage <code>location=</code> as taking any data. It is up to the mapping provider to interpret it.</p>

<pre><code class="language-html">&lt;geo location="Oxford, UK"&gt;
   Your browser doesn't support interactive maps.
   &lt;script src="..."&gt;
&lt;/geo&gt;
</code></pre>

<h2 id="zoom"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#zoom">Zoom</a></h2>

<p>A common requirement for a map is to specify a zoom level.  For example, <a href="https://developers.google.com/maps/documentation/javascript/tutorial#MapOptions">Google Maps uses zoom levels 0 - 20</a> - with being fully zoomed out. Similarly, <a href="http://wiki.openstreetmap.org/wiki/Zoom_levels">OpenStreetMap uses 0 - 19</a>.</p>

<p>Rather than arbitrary numbers to represent zoom, the <code>&lt;geo&gt;</code> element uses a <code>zoom</code> tag which defines how wide the map is in measurable units.  For example <code>zoom="5KM"</code> shows a map with a diameter of 5 kilometres. <code>zoom="90deg"</code> shows a map zoomed out to show quarter of the world.</p>

<pre><code class="language-html">&lt;geo location="51.75026,-1.248338" zoom="10KM"&gt;
   Your browser doesn't support interactive maps.
   &lt;img src="..." /&gt;
&lt;/geo&gt;
</code></pre>

<p>Possible values could include degrees, kilometres, metres, and metres per pixel.</p>

<h2 id="interactivity"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#interactivity">Interactivity</a></h2>

<p>A website owner may not want a "slippy map" experience - in order to create a map which can't be moved or zoomed, they can use the boolean attribute <code>static</code>.</p>

<pre><code>&lt;geo location="51.75026,-1.248338" zoom="10deg" static &gt;&lt;/geo&gt;
</code></pre>

<h2 id="markers"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#markers">Markers</a></h2>

<p>It is useful to put a selection of markers on a map. For example, the location of the entrance points to a venue.</p>

<pre><code class="language-html">&lt;geo location="日本武道館" &gt;
   &lt;marker location="35.69391,139.7494" display="entrance"&gt;
      &lt;img src="..." &gt;
   &lt;/marker&gt;
   &lt;marker location="35.69274,139.7501" display="exit"&gt;&lt;/marker&gt;
&lt;/geo&gt;
</code></pre>

<p>In this case, the markers have a <code>location</code> tag, with an optional <code>display</code> tag for textual representation.
They also have an optional child which contains an image to be used as the marker.</p>

<h2 id="directions"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#directions">Directions</a></h2>

<p>In this example, the map shows directions from the user to the destination.</p>

<pre><code class="language-html">&lt;p&gt;Have a drink with us:&lt;/p&gt;
&lt;geo location="Strangers' Bar, SW1A 0AA, UK" directions&gt;&lt;/geo&gt;
</code></pre>

<p>A boolean tag. Crucially, the <code>&lt;geo&gt;</code> element doesn't share the user's location with the website.</p>

<h2 id="complex-data-kml-and-geojson"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#complex-data-kml-and-geojson">Complex data (KML and geoJSON)</a></h2>

<p>Both <a href="https://en.wikipedia.org/wiki/Keyhole_Markup_Language">KML</a> and <a href="http://geojson.org/">geoJSON</a> are popular ways of expressing complex spatial data. It should be possible to pass that data to the mapping software via the <code>src=</code> parameter.</p>

<pre><code class="language-html">&lt;geo src="/data/points.json"&gt;&lt;/geo&gt;

&lt;geo src="/data/points.kml"&gt;&lt;/geo&gt;
</code></pre>

<h2 id="other-stuff"><a href="https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/#other-stuff">Other Stuff</a></h2>

<p>Wait!  What about....?  As I said, this is a basic skeleton description of a new element. It probably doesn't involve your specific use case.</p>

<p>Just like the <code>&lt;video&gt;</code> element, this doesn't stop a developer using a 3rd party solution if they want.</p>

<p>Your thoughts?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=25509&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2017/08/mapping-in-html-a-proposal-for-a-new-element/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Can I own my identity on the Internet?]]></title>
		<link>https://shkspr.mobi/blog/2017/02/can-i-own-my-identity-on-the-internet/</link>
					<comments>https://shkspr.mobi/blog/2017/02/can-i-own-my-identity-on-the-internet/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 22 Feb 2017 19:19:42 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[identity]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[thoughts]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=24840</guid>

					<description><![CDATA[The ultra secure messaging app, Signal, requires a mobile phone number in order to sign up to it. This, as my friend Tom Morris, points out, is madness.  People don&#039;t own mobile phone numbers. They are rented from mobile operators. Yes, you may be able to move &#34;your&#34; number between a limited set of providers - but it ultimately doesn&#039;t belong to you. An operator can unilaterally take your number…]]></description>
										<content:encoded><![CDATA[<p>The ultra secure messaging app, <a href="https://whispersystems.org/">Signal</a>, requires a mobile phone number in order to sign up to it. This, as my friend Tom Morris, points out, <a href="https://shkspr.mobi/blog/2017/02/i-dont-have-an-email-address-so-what/#comment-5402">is madness</a>.</p>

<p>People don't own mobile phone numbers. They are <i>rented</i> from mobile operators. Yes, you may be able to move "your" number between a limited set of providers - but it ultimately doesn't belong to you. An operator can unilaterally take your number away from you.</p>

<p>If you move to a different country, you will almost certainly have to change your number - thus invalidating any account which relies on a mobile being your primary identifier.</p>

<p>That's before we get on to how hideously insecure phone numbers are. Transmitting an SMS with a sensitive one-time code over a cleartext which can be easily intercepted is not a sensible approach to security.  Modern phone networks are designed to accommodate Lawful Intercept - and suffer from a range of security weaknesses.</p>

<p>Fine. Whatever. Let's use emails as our primary ID. <em>Bzzzt!</em> Wrong! Email addresses are <strong>just as ephemeral</strong> as mobile numbers.</p>

<p>If you use a service like Gmail, Yahoo, or Hotmail, then you're at the mercy of those providers. They can revoke your access at any time. They can give away your cherished address. And, like phones, they can be legally compelled to give access to certain 3rd parties.</p>

<p>Social Media IDs are equally rubbish. Your presence on Twitter or Facebook is little more than virtual sharecropping. You don't own or control your ID.  If the provider goes bust, you've lost the ability to identify yourself.</p>

<p>OK, here's an answer! What if I run my own domain? Then I'll be in control of my identity. And my email as well!</p>

<p>No. Not really. Your domain is only temporarily leased from your registrar. Perhaps you forget to renew your domain. Or renewal prices will jump and you can't afford your "home" any more. Perhaps a global corporation insists that they alone have the right to use your name and take you to court.
That kills off the ability to use something like <a href="https://indieauth.com/">IndieAuth</a>.</p>

<p>Umm... How about IP addresses? Again, for most people these are leased from ISPs and are dynamic. Even with a switch to IPv6, there's no way to own an address permanently and move it between ISPs.</p>

<p>I want an online identity which is immune from 3rd parties to take back. Something unaffected by <a href="http://www.legislation.gov.uk/ukpga/1981/67/contents">Eminent Domain</a>. That - no matter the social and technological changes of the Internet - will remain valid throughout my lifetime.</p>

<h2 id="lets-craft-a-problem-statement"><a href="https://shkspr.mobi/blog/2017/02/can-i-own-my-identity-on-the-internet/#lets-craft-a-problem-statement">Let's craft a problem statement</a></h2>

<blockquote>
<p>As a user, I want to have an identifier on the Internet which can only be revoked by me.
</p></blockquote>

<p>(That's not a perfect story, of course. It says nothing about security, access rights, or usability. But it is a simple starting point.)</p>

<p>Does such an identifier exist today?</p>

<p>Something like a Public/Private keypair is <i>almost</i> right. Ignoring the many usability issues with things like PGP, it is conceivable that you could authenticate yourself to a service by cryptographically signing a challenge they send you which is then verified against your public key.</p>

<p>This is more-or-less how <a href="https://fidoalliance.org/download/">FIDO UAF</a> works.  You generate and store your keypair on a piece of cryptographic hardware and use that for authentication and identification.</p>

<p>But there is a more fundamental flaw - a keypair <b>doesn't provide a method for delivering a message or a service</b>.</p>

<p>At the moment there's no way to say</p>

<ul>
<li>"Visit my website at <code>impossibly long cryptographic string</code>" or </li>
<li>"Give me a call at ..." or </li>
<li>"Let's exchange data via ..."</li>
</ul>

<p>OK, I can <a href="https://www.katescomment.com/how-to-add-additional-email-addresses-to-your-gpg-identity/">add multiple email addresses to a PGP key</a> and hope that all the major email providers don't go bust, or sell me out.</p>

<p>I'm sure there are hacks which will turn <code>000D05F640557C62</code> into a DNS entry for a website.  But that still falls back on requiring an existing domain name. Which can be taken away from you.</p>

<p>(As an aside, if you're an intergovernmental agency registered by an international treaty, <a href="https://www.iana.org/domains/int/policy">you can apply for a <code>.int</code> domain</a>. That's probably harder for someone to unilaterally revoke.)</p>

<p>The Internet, <a href="https://cyber.harvard.edu/archived_content/people/reagle/inet-quotations-19990709.html">so we are told</a>, routes around damage. <em>But where does it route to?</em></p>

<p>I don't have an answer to this.  It seems like a fundamental design flaw with existing Internet infrastructure.  How can I carve out a permanent home here?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=24840&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2017/02/can-i-own-my-identity-on-the-internet/feed/</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
	</channel>
</rss>
