<?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, 22 Feb 2026 10:32:06 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</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[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>
