<?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>rant &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/rant/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Sat, 18 Apr 2026 07:05:11 +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>rant &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Is it possible to allow sideloading *and* keep users safe?]]></title>
		<link>https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/</link>
					<comments>https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 30 Aug 2025 11:34:55 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[scam]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=63058</guid>

					<description><![CDATA[In which I attempt to be pragmatic.  Are you allowed to run whatever computer program you want on the hardware you own? This is a question where freedom, practicality, and reality all collide into a mess.  Google has recently announced that Android users will only be able to install apps which have been digitally signed by developers who have registered their name and other legal details with…]]></description>
										<content:encoded><![CDATA[<p>In which I <em>attempt</em> to be pragmatic.</p>

<p>Are you allowed to run whatever computer program you want on the hardware you own? This is a question where freedom, practicality, and reality all collide into a mess.</p>

<p>Google has recently announced that Android users will only be able to install apps which have been digitally signed by developers who have registered their name and other legal details with Google.  To many people, this signals the death of "sideloading" - the ability to install apps which don't originate on the official store<sup id="fnref:sideload"><a href="https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/#fn:sideload" class="footnote-ref" title="Post by @Gargron@mastodon.social View on Mastodon" role="doc-noteref">0</a></sup>.</p>

<script data-allowed-prefixes="https://mastodon.social/" async="" src="https://mastodon.social/embed.js"></script>

<p>I'm a fully paid-up member of the Cory Doctorow fanclub. Back in 2011, he gave a speech called "<a href="https://boingboing.net/2012/08/23/civilwar.html">The Coming War on General Computation</a>". In it, he rails against the idea that our computers could become traitorous; serving the needs of someone other than their owner.  Do we want to live in a future where our computers refuse to obey our commands? No! Neither law nor technology should conspire to reduce our freedom to compute.</p>

<p>There are, I think, two small cracks in that argument.</p>

<p>The first is that a user has no right to run anyone else's code, if the code owner doesn't want to make it available to them.  Consider a bank which has an app. When customers are scammed, the bank is often liable. The bank wants to reduce its liability so it says "<a href="https://shkspr.mobi/blog/2023/05/the-limits-of-general-purpose-computation/">you can't run our app on a rooted phone</a>".</p>

<p>Is that fair? Probably not. Rooting allows a user to fully control and customise their device. But rooting also allows malware to intercept communications, send commands, and perform unwanted actions. I think the bank has the right to say "your machine is too risky - we don't want our code to run on it."</p>

<p>The same is true of video games with strong "anti-cheat" protection. It is disruptive to other players - and to the business model - if untrustworthy clients can disrupt the game. Again, it probably isn't <em>fair</em> to ban users who run on permissive software, but it is a <em>rational</em> choice by the manufacturer. And, yet again, I think software authors probably should be able to restrict things which cause them harm.</p>

<p>So, from their point of view it is pragmatic to insist that their software can only be loaded from a trustworthy location.</p>

<p>But that's not the only thing Google is proposing. Let's look at <a href="https://android-developers.googleblog.com/2025/08/elevating-android-security.html">their announcement</a>:</p>

<blockquote><p>We’ve seen how malicious actors hide behind anonymity to harm users by impersonating developers and using their brand image to create convincing fake apps. The scale of this threat is significant: our recent analysis found <strong>over 50 times more malware</strong> from internet-sideloaded sources than on apps available through Google Play.</p></blockquote>

<p>Back in the early days of Android, you could just install any app and it would run, no questions asked. That was a touchingly naïve approach to security - extremely easy to use but left users vulnerable.</p>

<p>A few years later, Android changed to show user the permissions an app was requesting. Here's a genuine screenshot from <a href="https://shkspr.mobi/blog/2013/04/what-can-android-learn-from-symbians-security-model/">an app which I tried to sideload in 2013</a>:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/04/Legit-App-Permissions.png" alt="A terrifying list of permissions." width="480" height="800" class="aligncenter size-full wp-image-28202">

<p>No rational user would install a purported battery app with that scary list of permissions, right? Wrong!</p>

<p>We know that <a href="https://www.nngroup.com/articles/how-little-do-users-read/">users don't read</a> and they especially <a href="https://discovery.ucl.ac.uk/id/eprint/1389027/1/KrolWarnings-CameraReady.pdf">don't read security warnings</a>.</p>

<p>There is no UI tweak you can do to prevent users bypassing these scary warnings. There is no amount of education you can provide to reliably make people stop and think.</p>

<p>Here's the story of <a href="https://www.bbc.co.uk/news/business-64981507">a bank literally telling a man he was being scammed</a> and he <em>still</em> proceeded to transfer funds to a fraudster.</p>

<blockquote><p>It emerged that, in this case, Lloyds had done a really good job of not only spotting the potential fraud but alerting James to it. The bank blocked a number of transactions, it spoke to James on the phone to warn him and even called him into a branch to speak to him face-to-face.</p></blockquote>

<p>Here's another one where <a href="https://www.bbc.co.uk/news/uk-england-leeds-67208755">a victim deliberately lied to their bank</a> even after acknowledging that they had been told it was a scam.</p>

<p>Android now requires you to deliberately turn on the ability to side-load. It will give you prompts and warnings, force you to take specific actions, give you pop-ups and all sorts of confirmation steps.</p>

<p>And people still click on.</p>

<p>Let's go back to Google announcement. This change isn't being rolled out worldwide immediately. They say:</p>

<blockquote><p>This change will start in a few select countries specifically impacted by these forms of fraudulent app scams, often from repeat perpetrators.</p>

<p>…</p>

<p>September 2026: These requirements go into effect in Brazil, Indonesia, Singapore, and Thailand. At this point, any app installed on a certified Android device in these regions must be registered by a verified developer.</p></blockquote>

<p>The police in Singapore have a page <a href="https://www.police.gov.sg/Media-Hub/News/2024/20241106_advisory_on_the_prevalence_of_malware_scams_affecting_android_users">warning about the prevalence of these scams</a>. They describe how victims are tricked or coerced into turning off all their phone's security features.</p>

<p>Similarly, there are estimates that <a href="https://www.gasa.org/post/1-in-3-brazilians-targeted-by-scammers-in-2024-state-of-scam-report">Brazil lost US$54 <strong>billion</strong> to scams in 2024</a> (albeit not all through apps).</p>

<p>There are <a href="https://www.reddit.com/r/indonesia/comments/1mjpnlo/optimisasi_apk_pemerintah_yg_kyk_kontol_enables/?tl=en">anecdotal reports from Indonesia</a> which show how easily people fall for these fake apps.</p>

<p>Thailand is also <a href="https://web.archive.org/web/20230121052244/https://www.bangkokpost.com/tech/2487659/phone-users-warned-over-malicious-apps">under an ongoing onslaught of malicious apps</a> with some apps raking in <a href="https://thethaiger.com/hot-news/crime/thai-police-crackdown-on-app-scam-seizing-nearly-1-million-baht">huge amounts of money</a>.</p>

<p>It is absolutely rational that government, police, and civic society groups want to find ways to stop these scams.</p>

<p>Google is afraid that if Android's reputation is tarnished as the "Scam OS" then users will move to more secure devices.</p>

<p>Financial institutions might stop providing functionality to Android devices as a way to protect their customers. Which would lead to those users seeking alternate phones.</p>

<p>Society as a whole wants to protect vulnerable people. We all bear the cost of dealing with criminal activity like this.</p>

<p>Given that sideloaded Android apps are clearly a <em>massive</em> vector for fraud, it obviously behoves Google to find a way to secure their platform as much as possible.</p>

<h2 id="and-yet"><a href="https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/#and-yet">And Yet…</a></h2>

<p>This is quite obviously a bullshit powerplay by Google to ensnare the commons. Not content with closing down parts of the Android Open Source Project, stuffing more and more vital software behind its proprietary services, and freezing out small manufacturers - now it wants the name and shoe-size of every developer!</p>

<p>Fuck that!</p>

<p>I want to use my phone to run the code that I write. I want to run my friends' code. I want to play with cool open source projects by people in far-away lands.</p>

<p>I remember <a href="https://shkspr.mobi/blog/2015/11/the-day-google-deleted-me/">The Day Google Deleted Me</a> - we cannot have these lumbering monsters gatekeeping what we do on our machines.</p>

<p>Back in the days when I was a BlackBerry developer, <a href="https://shkspr.mobi/blog/2012/06/how-do-you-solve-a-problem-like-blackberry/#what-specific-things-could-the-research-in-motion-developer-relations-team-do-or-communicate-that-would-make-you-more-likely-to-develop-applications-for-the-blackberry-10-platform">we had to wait ages for RIM's code-signing server to become available</a>. I'm pretty sure the same problem affected Symbian - if Nokia was down that day, you couldn't release any code.</p>

<p>Going back to their statement:</p>

<blockquote><p>To be clear, developers will have the same freedom to distribute their apps directly to users through sideloading or to use any app store they prefer.</p></blockquote>

<p>This is a lie. I can only distribute a sideloaded app <strong>if Google doesn't nuke my account</strong>. If I piss off someone there, or they click the wrong button, or they change the requirements so I'm no longer eligible - my content disappears.</p>

<p>They promise that <a href="https://developer.android.com/developer-verification">Android will still be open to student and hobbyist developers</a> - but would you believe anything those monkey-punchers say?  Oh, and what a fricking insult to call a legion of Open Source developers "hobbyists"!</p>

<p>I hate it.</p>

<p>I also don't see how this is going to help. I guess if scammers all use the same ID, then it'll be easy for Android to super-nuke all the scam apps.</p>

<p>Perhaps when you install a sideloaded app you'll see "This app was made by John Smith - not a company. Here's his photo. Got any complaints?  Call his number."</p>

<p>But what's going to happen is that people will get their IDs stolen, or be induced to register as a developer and then sign some malware. They'll also be victims.</p>

<h2 id="so-whats-the-solution"><a href="https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/#so-whats-the-solution">So What's The Solution?</a></h2>

<p>I've tried to be pragmatic, but there's something of a dilemma here.</p>

<ol start="0">
<li>Users should be free to run whatever code they like.</li>
<li>Vulnerable members of society should be protected from scams.</li>
</ol>

<p>Do we accept that a megacorporation should keep everyone safe at the expense of a few pesky nerds wanting to run some janky code?</p>

<p>Do we say that the right to run free software is more important than granny being protected from scammers?</p>

<p>Do we pour billions into educating users not to click "yes" to every prompt they see?</p>

<p>Do we try and build a super-secure Operating System which, somehow, gives users complete freedom without exposing them to risk?</p>

<p>Do we hope that Google won't suddenly start extorting developers, users, and society as a whole?</p>

<p>Do we chase down and punish everyone who releases a scam app?</p>

<p>Do we stick an AI on every phone to detect scam apps and refuse to run them if they're dodgy?</p>

<p>I don't know the answers to any of these questions and - if I'm honest - I don't like asking them.</p>

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

<li id="fn:sideload">
<blockquote class="mastodon-embed" data-embed-url="https://mastodon.social/@Gargron/115093185284473606/embed" style="background: #FCF8FF; border-radius: 8px; border: 1px solid #C9C4DA; margin: 0; max-width: 540px; min-width: 270px; overflow: hidden; padding: 0;"> <a href="https://mastodon.social/@Gargron/115093185284473606" target="_blank" style="align-items: center; color: #1C1A25; display: flex; flex-direction: column; font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', Roboto, sans-serif; font-size: 14px; justify-content: center; letter-spacing: 0.25px; line-height: 20px; padding: 24px; text-decoration: none;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 79 75"><path d="M63 45.3v-20c0-4.1-1-7.3-3.2-9.7-2.1-2.4-5-3.7-8.5-3.7-4.1 0-7.2 1.6-9.3 4.7l-2 3.3-2-3.3c-2-3.1-5.1-4.7-9.2-4.7-3.5 0-6.4 1.3-8.6 3.7-2.1 2.4-3.1 5.6-3.1 9.7v20h8V25.9c0-4.1 1.7-6.2 5.2-6.2 3.8 0 5.8 2.5 5.8 7.4V37.7H44V27.1c0-4.9 1.9-7.4 5.8-7.4 3.5 0 5.2 2.1 5.2 6.2V45.3h8ZM74.7 16.6c.6 6 .1 15.7.1 17.3 0 .5-.1 4.8-.1 5.3-.7 11.5-8 16-15.6 17.5-.1 0-.2 0-.3 0-4.9 1-10 1.2-14.9 1.4-1.2 0-2.4 0-3.6 0-4.8 0-9.7-.6-14.4-1.7-.1 0-.1 0-.1 0s-.1 0-.1 0 0 .1 0 .1 0 0 0 0c.1 1.6.4 3.1 1 4.5.6 1.7 2.9 5.7 11.4 5.7 5 0 9.9-.6 14.8-1.7 0 0 0 0 0 0 .1 0 .1 0 .1 0 0 .1 0 .1 0 .1.1 0 .1 0 .1.1v5.6s0 .1-.1.1c0 0 0 0 0 .1-1.6 1.1-3.7 1.7-5.6 2.3-.8.3-1.6.5-2.4.7-7.5 1.7-15.4 1.3-22.7-1.2-6.8-2.4-13.8-8.2-15.5-15.2-.9-3.8-1.6-7.6-1.9-11.5-.6-5.8-.6-11.7-.8-17.5C3.9 24.5 4 20 4.9 16 6.7 7.9 14.1 2.2 22.3 1c1.4-.2 4.1-1 16.5-1h.1C51.4 0 56.7.8 58.1 1c8.4 1.2 15.5 7.5 16.6 15.6Z" fill="currentColor"></path></svg> <div style="color: #787588; margin-top: 16px;">Post by @Gargron@mastodon.social</div> <div style="font-weight: 500;">View on Mastodon</div> </a> </blockquote>

<p><a href="https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/#fnref:sideload" 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=63058&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/08/is-it-possible-to-allow-sideloading-and-keep-users-safe/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[I'm never going back to Matrix]]></title>
		<link>https://shkspr.mobi/blog/2025/07/im-never-going-back-to-matrix/</link>
					<comments>https://shkspr.mobi/blog/2025/07/im-never-going-back-to-matrix/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 29 Jul 2025 11:34:22 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[Matrix]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=62087</guid>

					<description><![CDATA[I should love Matrix. It is a decentralised, privacy preserving, multi-platform chat tool. Goodbye Slack and your ridiculous free limits. Adiós Discord and your weird gamification. Suck it IRC with your obscure syntax and faint stench of BO. WhatsApp and Telegram can stick their heads in a bucket of lukewarm sick and sing sea shanties! Let&#039;s join the future!  The problem is - Matrix is shit. Not …]]></description>
										<content:encoded><![CDATA[<p>I should love Matrix. It is a decentralised, privacy preserving, multi-platform chat tool. Goodbye Slack and your ridiculous free limits. Adiós Discord and your weird gamification. Suck it IRC with your obscure syntax and faint stench of BO. WhatsApp and Telegram can stick their heads in a bucket of lukewarm sick and sing sea shanties! Let's join the future!</p>

<p>The problem is - Matrix is shit. Not just on a protocol level, but on an organisational level as well.</p>

<p>I joined Matrix at FOSDEM - the largest gathering of open source nerds in Europe. We were all encouraged to use it - every talk had its own channel, all the official comms came from there, I was even invited to a top-secret private channel for speakers. This was going to be epic! Viva la rèvölūçïón, right? Wrong.</p>

<p>It was dead. Even among the most seasoned geeks on the planet, most people preferred to use other services like Signal, Telegram, and Slack. Why? Because those other tools <em>actually</em> work.</p>

<p>Matrix has two official Android apps - one of which is old and unsupported, the other is new and doesn't work with many of the basic chat features.</p>

<p>I want to be absolutely clear about this - the company behind Matrix have put out an app which doesn't work with their own product!  Lest you think I'm exaggerating, here's a typical view of the official FOSDEM speaker room, using the official Matrix app:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/07/Matrix-Unsupported-event.webp" alt="A list of errors saying &quot;Unsupported Event&quot;." width="504" height="1122" class="aligncenter size-full wp-image-62099">

<p>It was <strong>embarrassing</strong>. People would pipe up in channels and say "this doesn't work" only to be told they were using the wrong app and should go back to the one marked unsupported. So they left, never to return. Even in the large talks, where people were encouraged to use the official Matrix chat, most of the conversation happened on other platforms. It was just too hard to use Matrix.</p>

<p>A few thousands geeks, all used to recompiling their own kernels and participating in the Fediverse, and most thought that Matrix was too much of a faff.</p>

<p>After FOSDEM, I kept the Matrix app on my phone. Occasionally receiving a ping from some long-forgotten channel.</p>

<p>And then, one day, I got hit with the most vile spam. A dozen notifications suddenly appeared on my phone with abuse, torture, and transphobic slurs in them.</p>

<p><a href="https://mastodon.social/@Edent/114539443582952334">You can view the screenshot</a> - but, fair warning, it is grim.</p>

<p>This shouldn't be possible. It doesn't take an expensive team of moderators to add some keyword monitoring. It doesn't take a massive AI model to work out that a stranger shouldn't be able to bombard users with multiple notifications. You don't have to sacrifice your dream of a decentralised future - you just need to care about your users.</p>

<p>This stuff is <em>basic</em>.</p>

<p>I moaned about it on Mastdon and was surprised to receive a private reply from the <em>official</em> Matrix account.</p>

<blockquote><p>Please do not encourage the spammer by giving them a platform and propagating their spam; you may want to consider deleting your post.</p></blockquote>

<p>This is classic victim blaming. It is my fault for giving the spammer attention. I am the one who needs to take responsibility and delete the evidence. I shouldn't warn people that Matrix is actively dangerous to use.</p>

<p>Bullshit.</p>

<p>Here's what I <em>expected</em> them to say:</p>

<blockquote><p>"We're sorry you had such a bad experience on Matrix. Rest assured we're working hard to block these spammers - here's a link to show what we're doing. You can protect your account further by doing x, y and z. Once again, sorry and we hope we can win back your trust."</p></blockquote>

<p>I'm not saying scrappy open source projects have to hire anodyne corporate communications specialists; they just need to have a <em>little</em> empathy.</p>

<p>But, no, just constant whining about how it isn't their fault and how <strong>I</strong> am the one who needs to change my behaviour.</p>

<p>This is pretty typical behaviour from the team. Find any post complaining about some aspect of Matrix and you'll see their instant woe-is-me replies.</p>

<p>So I deleted the app. I would have liked to have nuked my account <a href="https://github.com/matrix-org/synapse/issues/1941">but apparently that's not possible</a>.</p>

<p>I'm not the only one who feels like this. <a href="https://マリウス.com/giving-up-on-element-and-matrixorg/">Here's an epic post by Marius</a>, which concludes:</p>

<blockquote><p>Between the slow performance, the increasing amount of spam, the miserable web client, and the unfinished state of Element X, the Matrix.org network is not something I am willing to continue to recommend, especially to non-technical users. Normal people are simply tolerating it to communicate with idealistic nerds like myself who insist(ed) on using it.</p></blockquote>

<p>Matrix just isn't focussed on users. I'm not talking about user-experience tweaks like which shade of cornflower blue to use - I mean basic user needs like apps that work and a way to combat spam.</p>

<p>There's a <a href="https://telegra.ph/why-not-matrix-08-07">long list of ways the protocol contributes to a poor user experience</a>. It almost seems designed without regard for how it will actually be used.</p>

<p>While the protocol may be conceptually interesting and their intentions noble, I'm not prepared to suffer abuse in the name of technical purity.</p>

<p>Open Source and Open Standards nerds like me ought to know by now that the protocol is the <em>least</em> compelling thing about a service.  Who cares if your home is built using only Stallman-blessed tools, when the walls are full of rats?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=62087&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/07/im-never-going-back-to-matrix/feed/</wfw:commentRss>
			<slash:comments>58</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[We've got to stop sending files to each other]]></title>
		<link>https://shkspr.mobi/blog/2025/07/weve-got-to-stop-sending-files-to-each-other/</link>
					<comments>https://shkspr.mobi/blog/2025/07/weve-got-to-stop-sending-files-to-each-other/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 17 Jul 2025 11:34:37 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[skeuomorph]]></category>
		<category><![CDATA[ux]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61974</guid>

					<description><![CDATA[Another day, another data breach.  the spreadsheet, initially shared in 2022, and thought to contain data related to a small number of applicants, had contained hidden data related to more than 18,000 people.   ICO statement in response to 2022 MoD data breach  Why are people still sending files to each other? I remember having a stand-up argument a decade ago with a project manager who wanted us …]]></description>
										<content:encoded><![CDATA[<p>Another day, another data breach.</p>

<blockquote><p>the spreadsheet, initially shared in 2022, and thought to contain data related to a small number of applicants, had contained hidden data related to more than 18,000 people. </p>

<p><a href="https://ico.org.uk/about-the-ico/media-centre/news-and-blogs/2025/07/ico-statement-in-response-to-2022-mod-data-breach/">ICO statement in response to 2022 MoD data breach</a></p></blockquote>

<p>Why are people still sending files to each other? I remember having a stand-up argument a decade ago with a project manager who wanted us to email a completed Word template to him every day. He'd then spend hours merging the various documents together. He couldn't get his head around the collaborative document suite the company had purchased a licence for. I tried showing him that we could give specific people write-access to the document and they could edit it live. No more emailing back-and-forth.</p>

<p>It just didn't stick. It wasn't that he was ignorant about what computers could do, but his entire mental model was built around files. Discrete packets of data with a fixed metaphor from the real world.</p>

<p>Collaborative online documents don't have an easy analogue analogue. It is rare to see a dozen people scribbling on the same whiteboard or using the same typewriter keyboard.</p>

<p>Permissions are another things that aren't intuitive.  The idea that only specific people can see something doesn't match our expectations of paper. Sure, anyone could grab a pen and deface it, that's why we have one person in charge of the "master copy".</p>

<p>Copy. What a hateful word.</p>

<p>The modern workforce shouldn't be flinging copies to each other. A copy is outdated the moment it is downloaded. A copy has no protection against illicit reading. A copy can never be revoked.</p>

<p>Data shouldn't live in a file on a laptop. It shouldn't be a single file on a network share. Data is a <em>living</em> beast.  Data needs to live in a database - not an Excel file. Access should be granted for each according to their needs.</p>

<p>I see the same issue in the <a href="https://www.theguardian.com/technology/2025/jul/16/wetransfer-user-content-ai-artificial-intelligence">WeTransfer kerfuffle</a>. Very Serious People saying it was intolerable that the untrusted 3rd party they were using to share Very Sensitive Information was going to read that information.</p>

<p>At which point you have to throw up your hands and ask <em>why</em> people are sending files to each other in the year of <a href="https://www.lewiscapaldi.com/">Our Lord</a> 2025?!?!?  If you have a sensitive file, use proper access controls. Or at least use a password so the FTP-as-a-service provider can't steal your IP.</p>

<p>And git! Don't get me started on git! The best minds of a generation stuck in a paradigm of downloading files to their local machine, making changes, then <del>emailing</del> <code>git push</code>ing them up to be approved? Madness!</p>

<p>Look, there are some times when you need a local copy. I want my own copy of my insurance documents - but that's not a living doc; it is an agreed artefact. Sure, it's handy to have access when there's no network connection - but that's what background sync is for. OK, you're on Office 365 and I'm on Google - so we'll have to work a little harder to set up access.</p>

<p>But all of this is possible!</p>

<p>We rant and rave about the <span style="font-size:1.5em;">💾</span> icon being a skeuomorph. But the very concept of an individual file is <em>also</em> a skeuomorph! Data are not stored on paper files. There is no such thing as a filesystem directory - it's just a convention to make computing palatable for people born in the 20th century who lived in a world of A4 paper and manilla folders.</p>

<p>Modern computing is still stuck in the past. Our computers are like cars which have been designed to carry a bale of hay to mop up the horse-piss.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61974&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/07/weve-got-to-stop-sending-files-to-each-other/feed/</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[The least secure TOTP code possible]]></title>
		<link>https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/</link>
					<comments>https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 24 Feb 2025 12:34:05 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[CyberSecurity]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[totp]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=58360</guid>

					<description><![CDATA[If you use Multi-Factor Authentication, you&#039;ll be well used to scanning in QR codes which allow you to share a secret code with a website. These are known as Time-based One Time Passwords (TOTP).  As I&#039;ve moaned about before, TOTP has never been properly standardised. It&#039;s a mish-mash of half-finished proposals with no active development, no test suite, and no-one looking after it. Which is…]]></description>
										<content:encoded><![CDATA[<p>If you use Multi-Factor Authentication, you'll be well used to scanning in QR codes which allow you to share a secret code with a website. These are known as Time-based One Time Passwords (TOTP<sup id="fnref:pop"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#fn:pop" class="footnote-ref" title="Yes! Just like Top of The Pops! The famous British TV show! Wow! I bet you're the first person in history to make that joke! Have a biscuit." role="doc-noteref">0</a></sup>).</p>

<p>As I've moaned about before, <a href="https://shkspr.mobi/blog/2022/05/why-is-there-no-formal-specification-for-otpauth-urls/">TOTP has never been properly standardised</a>. It's a mish-mash of half-finished proposals with no active development, no test suite, and no-one looking after it. Which is <em>exactly</em> what you want from a security specification, right?!</p>

<p>So let's try to find some edge-cases and see where things break down.</p>

<h2 id="one-punch-man"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#one-punch-man">One Punch Man</a></h2>

<p>This is possibly the <em>least</em> secure TOTP code I could create. Scan it and see whether your app will accept it.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/02/ultra.png" alt="QR code." width="350" height="350" class="aligncenter size-full wp-image-58361">

<p>What makes it so crap?  There are three things which protect you when using TOTP.</p>

<ol>
<li>The shared secret. In this case, it is <code>abcdefghijklmno</code> - OK, that's not the easiest thing to guess, but it isn't exactly complex.</li>
<li>The amount time the code is valid for before changing. Most TOTP codes last 30 seconds, this lasts 120.</li>
<li>The length of the code. Most codes are 6 digits long. In theory, the spec allows 8 digits. This is 1. Yup. A single digit.</li>
</ol>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/02/totp-bitwarden-fs8.png" alt="BitWarden showing a single digit for 119 seconds." width="504" height="378" class="aligncenter size-full wp-image-58380">

<p>If you were thick enough to use this<sup id="fnref:noooooo"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#fn:noooooo" class="footnote-ref" title="Please don't!" role="doc-noteref">1</a></sup>, an attacker would have a 1/10 chance of simply <em>guessing</em> your MFA code. If they saw you type it in, they'd have a couple of minutes in which to reuse it.</p>

<p>Can modern TOTP apps add this code? I <a href="https://mastodon.social/@Edent/114032994415288253">crowdsourced the answers</a>.</p>

<p>Surprisingly, a few apps accept it! Aegis, 1password, and BitWarden will happily store it and show you a 1 digit code for 120 seconds.</p>

<p>A few reject it. Authy, Google Authenticator, and OpenOTP claim the code is broken and won't add it.</p>

<p>But, weirdly, a few <em>interpret it incorrectly!</em> The native iOS app, Microsoft Authenticator, and KeepassXC store the code, but treat it as a 6 digit, 30 second code.</p>

<h2 id="do-the-right-thing"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#do-the-right-thing">Do The Right Thing</a></h2>

<p>What is the right thing to do in this case? The code is outside the (very loosely defined) specification. <a href="https://lawsofux.com/postels-law/">Postel's Law</a> tells us that we should try our best to interpret malformed data - which is what Aegis and BitWarden do.</p>

<p>But, in a security context, that could be dangerous. Perhaps rejecting a dodgy code makes more sense?</p>

<p>What is absolutely daft<sup id="fnref:stronger"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#fn:stronger" class="footnote-ref" title="I wanted to use the words &quot;utterly fucking stupid&quot; but I felt it was unprofessional." role="doc-noteref">2</a></sup> is ignoring the bits of the code you don't like and substituting your own data! Luckily, in a normal TOTP enrolment, the user has to enter a code to prove they've saved it correctly. Entering in a 6 digit code where only 1 is expected is likely to fail.</p>

<h2 id="were-only-human"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#were-only-human">We're Only Human</a></h2>

<p>A one-digit code is ridiculous. But what about the other extreme? Would a 128-digit code be acceptable? For a human, no; it would be impossible to type in correctly. For a machine with a shared secret, it possibly makes sense.</p>

<p>On a high-latency connection or with users who may have mobility difficulties, a multi-minute timeframe could be sensible. For something of extremely high security, sub-30 seconds may be necessary.</p>

<p>But, again, the specification hasn't evolved to meet user needs. It is stagnant and decaying.</p>

<h2 id="whats-next"><a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#whats-next">What's Next?</a></h2>

<p>There's an <a href="https://www.ietf.org/archive/id/draft-linuxgemini-otpauth-uri-00.html">draft proposal to tighten up to TOTP spec</a> which has expired.</p>

<p>It would be nice if the major security players came together to work out a <em>formal</em> and <em>complete</em> specification for this vital piece of security architecture. But I bet it won't ever happen.</p>

<ul>
<li><a href="https://github.com/google/google-authenticator/wiki/Key-Uri-Format">Google have archived their work on authentication standards</a>.</li>
<li><a href="https://developer.apple.com/documentation/authenticationservices/securing-logins-with-icloud-keychain-verification-codes#3795996">Apple points to Google's outdated spec</a>.</li>
<li><a href="https://docs.yubico.com/yesdk/users-manual/application-oath/uri-string-format.html">YubiCo's incompatible spec hasn't been updated in 4 years</a>.</li>
<li>The <a href="https://www.iana.org/assignments/uri-schemes/prov/otpauth">otpauth registration</a> lists a consortium called <a href="https://openauthentication.org">https://openauthentication.org</a> who don't appear to published anything in a decade.</li>
<li>Microsoft don't have any documentation whatsoever.</li>
</ul>

<p>So there you have it. We're told to rely on TOTP for our MFA - yet the major apps all disagree on how the standard should be implemented. This is a recipe for an eventual security disaster.</p>

<p>How do we fix it?</p>

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

<li id="fn:pop">
<p>Yes! Just like Top of The Pops! The famous British TV show! Wow! I bet you're the first person in history to make that joke! Have a biscuit.&nbsp;<a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#fnref:pop" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:noooooo">
<p>Please don't!&nbsp;<a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#fnref:noooooo" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:stronger">
<p>I wanted to use the words "utterly fucking stupid" but I felt it was unprofessional.&nbsp;<a href="https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/#fnref:stronger" 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=58360&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/02/the-least-secure-totp-code-possible/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[What's the point of a pub?]]></title>
		<link>https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/</link>
					<comments>https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 23 Jan 2025 12:34:51 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[shitpost]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=55381</guid>

					<description><![CDATA[The UK is going through one of its periodic lamentations that &#34;Things Are Changing And No One Asked Me&#34;. This time, it is over the loss of the humble British pub.  It seems every year there&#039;s another story about how pubs are vanishing. Cue the wailing and gnashing of teeth as the Fabric Of Society™ is rent asunder.  To which I say &#34;Good riddance. Most pubs are shit and deserve to go.&#34;  Let me e…]]></description>
										<content:encoded><![CDATA[<p>The UK is going through one of its periodic lamentations that "<a href="https://www.ftrain.com/wwic">Things Are Changing And No One Asked Me</a>". This time, it is over <a href="https://www.theguardian.com/business/2024/dec/30/number-of-pubs-in-england-and-wales-falls-below-39000-for-first-time">the loss of the humble British pub</a>.</p>

<p>It seems every year<sup id="fnref:year"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:year" class="footnote-ref" title="Seriously. This story is an annual tradition" role="doc-noteref">0</a></sup> there's <a href="https://www.bbc.co.uk/news/business-43492043">another story about how pubs are vanishing</a><sup id="fnref:kill"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:kill" class="footnote-ref" title="Although they never seem to be entirely killed off." role="doc-noteref">1</a></sup>. Cue the wailing and gnashing of teeth as the Fabric Of Society™ is rent asunder.</p>

<p>To which I say "Good riddance. Most pubs are shit and deserve to go."</p>

<p>Let me explain. It is quite clear that the majority of the population<sup id="fnref:maj"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:maj" class="footnote-ref" title="Me? I bloody love pubs. There's nothing like finding a snug little table in a charmingly decorated historic building, where I can try a wide variety of interesting ales, while chatting to my friends…" role="doc-noteref">2</a></sup> do not find pubs to have a compelling value proposition.</p>

<p>Here's all the way pubs are crap:</p>

<ul>
<li>Expensive. For the same price as one pint in a pub, I can buy <em>several</em> cans from a supermarket.</li>
<li>Alcoholic. <a href="https://bmcpublichealth.biomedcentral.com/articles/10.1186/s12889-022-14760-y">Lots of young people don't drink</a>. Many people are cutting down on their booze. Why go somewhere which will only reluctantly serve you a lemonade? Of course, with alcohol comes…</li>
<li>Violence. I remember walking past a pub in Brighton which had bouncers on its doors at lunch-time.  Drunk people can be aggressive. That also leads to…</li>
<li>Unwanted sexual attention. Pubs can be fundamentally unsafe - whether its spiking drinks, groping, or being relentlessly flirted with. They often don't feel like welcoming environments.  And, if you are in the market for a date, you are more likely to get a consenting friend via a dedicated app rather than hoping to bump into someone.</li>
<li>Noisy. Everyone says they want to socialise - so why does your pub blare out music at full volume from a jukebox which hasn't been updated since the last century<sup id="fnref:music"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:music" class="footnote-ref" title="Because loud music makes you drink faster." role="doc-noteref">3</a></sup>?</li>
<li>Grim. Sticky floors, filthy toilets, wobbly tables. My living room is just a much more pleasant environment.</li>
<li>Feel free to supply your own further reasons.</li>
</ul>

<p>To which the pub connoisseur has a mini episode of "<a href="https://knowyourmeme.com/memes/am-i-so-out-of-touch">No, it is the children who are wrong</a>" and convinces themselves that there's nothing wrong with pubs.  They are, of course, imagining their idealised pub where the gruff old Landlord greats you with a nod, a buxom barmaid has already started pulling you a pint of your usual, and - goodness! - isn't that your old mate Dave in the corner?!</p>

<p>The reality is you walk in to a noisy bar, the air stinks of sweat, as you struggle to get the attention of the bored barman a fella taps you on the shoulder and growls "D'y'wanna buy some meat? It isn't stolen!"</p>

<p>Here's the thing. The customer is <em>always</em> right. If people aren't going to your establishment because they don't like it - you can't force them.</p>

<p>Lots of pubs are changing. They're offering more non-alcoholic options, they host social events during the day, they serve decent food, and attempt to keep the toilets clean.</p>

<p>But...</p>

<p>If I want decent food, I'll go to a restaurant - or get a takeaway.  If I want some interesting beers, I can buy them online.  If I want to meet up with friends, I send a message on the group chat.  If I want to socialise, I go to a place where I won't be leered at and it doesn't stink of stale beer and farts. If I want to watch the football, I can do so at home on a bigger screen without the risk of the local psychopath giving me aggro for looking at him funny.</p>

<p>Whenever I <a href="https://bsky.app/profile/edent.tel/post/3leji322hp223">rant about this online</a> I get the usual pub-bores telling me I'm wrong. Apparently pubs are the cornerstone of the community (even though no one goes there any more) and more like a delightful social club (even though there are better options for socialising) and the combined Meat Raffle / Pub Quiz is what makes us <em>truly</em> British.</p>

<p>That's a load of old bollocks though, isn't it?</p>

<p>As I said<sup id="fnref:fn"><a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fn:fn" class="footnote-ref" title="If you'd bothered to read the footnotes." role="doc-noteref">4</a></sup>, I love going to decent pubs. What I can't stand is going to a decrepit or soulless hole where the only drinks on offer are generic larger and bottled cider, where the vegetarian option is being told to fuck off, and the entertainment is watching the pickpockets try their luck.</p>

<p>But, frankly, it doesn't matter what I like. Fashions ebb and flow. The <a href="https://www.walesonline.co.uk/news/wales-news/milk-bars-consigned-past-1905320">Milk Bars of the 1960s</a> are little more than a memory. No one has visited a video arcade since the 1990s. The village baker gave way to the cheaper supermarket loaf.</p>

<p>Sorry pubs, you had a good run. The choice was "adapt or die". Seems like lots of you chose… poorly.</p>

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

<li id="fn:year">
<p>Seriously. This story is <a href="https://www.bbc.co.uk/news/business-62031833">an annual tradition</a>&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:year" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:kill">
<p>Although they never seem to be entirely killed off.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:kill" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:maj">
<p>Me? I bloody love pubs. There's nothing like finding a snug little table in a charmingly decorated historic building, where I can try a wide variety of interesting ales, while chatting to my friends the whole night through.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:maj" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:music">
<p>Because loud music makes you drink faster.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:music" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:fn">
<p>If you'd bothered to read the footnotes.&nbsp;<a href="https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/#fnref:fn" 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=55381&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/01/whats-the-point-of-a-pub/feed/</wfw:commentRss>
			<slash:comments>42</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Google has no faith in its ability to launch new products]]></title>
		<link>https://shkspr.mobi/blog/2025/01/google-has-no-faith-in-its-ability-to-launch-new-products/</link>
					<comments>https://shkspr.mobi/blog/2025/01/google-has-no-faith-in-its-ability-to-launch-new-products/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 20 Jan 2025 12:34:44 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[products]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=55396</guid>

					<description><![CDATA[Back when I was a product manager for a large mobile network operator, we faced a constant problem. How do you launch a new product to the public?  Most people are reluctant to try new things. Even in the exciting world of proto-smartphones, convincing someone to download, install, configure, and use a new app was difficult. Sure, we could run expensive advertising campaigns. Send hopeful text…]]></description>
										<content:encoded><![CDATA[<p>Back when I was a product manager for a large mobile network operator, we faced a constant problem. How do you launch a new product to the public?</p>

<p>Most people are reluctant to try new things. Even in the <em>exciting</em> world of proto-smartphones, convincing someone to download, install, configure, and use a new app was difficult. Sure, we could run expensive advertising campaigns. Send hopeful text messages. Have a big celebrity endorsement. Or maybe get our customer service reps to push it.</p>

<p>In the end, we pre-installed it on every device we sold. Then we forcibly pushed it to every supported phone on our network.  The backlash was incredible. As you might expect, people think of their phones as their own personal space. Having a new app shoved on there felt like an invasion. It took up memory space, true, but more importantly it took up <em>psychological</em> space. We had reminded customers that we thought of them as little more than cattle; a resource we controlled with an aim to extract value.</p>

<p>Google is in a similar boat today.  They have absolutely no confidence that their Gemini AI Assistant is any good. They've run countless tests with customers and it is a dud. But they've invested a lot of money, so it needs to launch.  Customers, in the main, decline to install it and they certainly refuse to pay for it. So what's Google's solution?</p>

<p>They have forcibly installed it, jacked up the prices, and made it impossible to remove.</p>

<p>These are not the actions of a company which believes in its own products.</p>

<p>To be fair to Google, it is a problem seen in many businesses. They crave instant success, they want to see massive overnight numbers, and they have a winner-takes-all mentality. But the real world isn't like that. <a href="https://en.wikipedia.org/wiki/The_customer_is_not_a_moron">Customers aren't morons</a> but they lead busy and complex lives. You product is important to you, but it is <em>utterly</em> irrelevant to most customers. It is your job to convince people that your product has merits. You have to listen to them <em>and</em> get their consent.</p>

<p>People don't deserve to be tricked into installing something. Forcing people to use your product is <em>disrespectful</em></p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=55396&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/01/google-has-no-faith-in-its-ability-to-launch-new-products/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Most people don't care about quality]]></title>
		<link>https://shkspr.mobi/blog/2024/12/most-people-dont-care-about-quality/</link>
					<comments>https://shkspr.mobi/blog/2024/12/most-people-dont-care-about-quality/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 30 Dec 2024 12:34:02 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Netflix]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=55162</guid>

					<description><![CDATA[My friend, the photographer Paul Clarke has an uncanny eye for detail. Every single shot he publishes is beautiful - they capture life in a way that I don&#039;t have the language to describe. I&#039;m quite content to point my phone at someone, use the default settings, and grab a snap. My photos lack composition, clarity, focus, mise-en-scène, proper lighting and a thousand-and-one details that I&#039;ve …]]></description>
										<content:encoded><![CDATA[<p>My friend, the <a href="https://paulclarke.com/">photographer Paul Clarke</a> has an uncanny eye for detail. Every single shot he publishes is beautiful - they capture life in a way that I don't have the language to describe. I'm quite content to point my phone at someone, use the default settings, and grab a snap. My photos lack composition, clarity, focus, <i lang="fr">mise-en-scène</i>, proper lighting and a thousand-and-one details that I've never even thought of.</p>

<p>Paul has published <a href="https://www.linkedin.com/posts/paulclarke6_new-appointment-photos-set-a-tone-sometimes-activity-7215046537209393152-vo92">an essay about official photographs of politicians</a>. In it, he expertly points out the various deficiencies of some of them and where they show a distinct lack of quality.</p>

<p>But, here's the thing, I don't think anyone other than a photographer would notice or care about those "problems".</p>

<p>If you're a website designer, you're always noticing "jank" on other sites. Your skin crawls at the poor kerning, the FOUT, the lack of keyboard navigation, improper contrast ratio, and a dozen other flaws. 99% of users just don't care.  It doesn't impact them in any meaningful way.</p>

<p>A decade ago, I ranted about how <a href="https://shkspr.mobi/blog/2013/01/are-designers-crazy/">designers were chasing a perfection which would never be noticed by non-experts</a>.  You may take pride in your craft, but the majority of people <em>physically</em> cannot notice the difference between good and bad design. Not even subconsciously.</p>

<p>I include myself in this maddening desire for unnoticeable perfection. I've got several <a href="https://shkspr.mobi/blog/tag/rant/">rants about things most people would find inconsequential</a>.  There are things which I <em>know</em> to be important in terms of technical correctness, but which most people couldn't give a shit about.</p>

<p>There's a brilliant essay by Will Tavlin called "<a href="https://www.nplusonemag.com/issue-49/essays/casual-viewing/">Casual Viewing - Why Netflix looks like that</a>".</p>

<p>In it, the author (correctly and fairly) skewers Netflix's model of producing huge amounts of low-quality content for an undiscerning audience. The creatives recoil in horror and the æsthetic choices, poor scripting, and lack of creative pizazz. Everything is mediocre at best and that's destroying the creative industries.</p>

<p>But, much like designers fretting about <a href="https://shkspr.mobi/blog/2018/11/the-myth-of-the-pixel-perfect-grid/">getting things Pixel Perfect</a> or photographers complaining about <a href="https://www.linkedin.com/posts/paulclarke6_watch-your-background-youll-see-this-activity-7153041835630759936-x0gv">background composition</a> or musicians ranting about <a href="https://www.musicianwave.com/the-loudness-war/">the loudness wars</a> - the <i lang="gr">hoi polloi</i> just don't care.</p>

<p>And, frankly, who can blame them? Take this quote from the Netflix essay:</p>

<blockquote><p>The difference between Netflix and its predecessors is that the older studios had a business model that rewarded cinematic expertise and craft.</p></blockquote>

<p>Bluntly, I don't think that's true.  Look at <a href="https://en.wikipedia.org/wiki/Elvis_Presley_on_film_and_television#Film">the amount of movies Elvis was in</a>. A couple of good ones, sure. But the majority are literally just "This demographic will pay a dollar to see Elvis on screen; so put him on screen".  You only need to look at the various lists of <a href="https://en.wikipedia.org/wiki/List_of_highest-grossing_films">highest grossing movies</a> to see that the viewing public don't necessarily reward expertise and craft.</p>

<p>In an essay called "<a href="https://escholarship.org/uc/item/3kn4p9v2">Fraught Pleasures: Domestic Trauma and Cinephilia in American Culture</a>", the author points out that in the movie "Scream" (a movie ostensibly about movies) nobody goes to the cinema. Their entertainment is schlocky VHS tapes of low-budget and low-quality horror films.  The nearest they get to discussing the quality of movie making is when one character recommends renting "<a href="https://www.imdb.com/title/tt0085154/">All The Right Moves</a>" because:</p>

<blockquote><p>If you pause it at just the right place, you can see [Tom Cruise’s] penis!</p></blockquote>

<p>Quality!</p>

<p>Netflix, so the essay argues, has perfected the art of designing content for "casual viewing".   Something you can have on in the background while cooking, playing a game, or doom-scrolling.</p>

<blockquote><p>Several screenwriters who’ve worked for the streamer told me a common note from company executives is “have this character announce what they’re doing so that viewers who have this program on in the background can follow along.”</p></blockquote>

<p>So? Not everything should be hard work.  After a long day, most people don't <em>want</em> to work for their leisure. People don't want to expend cognitive energy on interpreting what a story means. <a href="https://shkspr.mobi/blog/2024/05/forget-subtext-people-dont-even-get-surtext/">Forget Subtext - People Don't Even Get Surtext</a>.</p>

<p>We also have the problem that close to 100% of culture is now readily available to us. Why take a risk on something new when you could watch something <em>guaranteed</em> to be good?  An executive at Amazon's streaming division recalls receiving an email which said:</p>

<blockquote><p>‘here are the one hundred movies that people are watching most on Amazon SVOD today by the minute.’ It was always a lot of Tom Cruise sci-fi movies, action movies from the ’90s and aughts, and Talladega Nights.</p></blockquote>

<p>You want to get everyone dancing at your party. Do you put on some experimental music that no one has heard of? No - you stick on ABBA and watch the dance-floor fill up.</p>

<p>Want something with a guaranteed number of chuckles-per-minute? Friends is there for you.</p>

<p>When you visit Paris, do you go to some little art gallery showcasing new artists or do you visit Le Louvre?  You, like everyone else, bask in front of the <a href="https://shkspr.mobi/blog/2018/06/how-i-became-leonardo-da-vinci-on-the-blockchain/">Mona Lisa</a>.</p>

<p>Finally, we reach the inevitble endgame of Netflix. Cut out the authors, actors, directors, make-up artists, sound designers, and the hundreds of other unionised parasites involved in making a modern show. Go straight to AI and create an infinite and endless stream of algorithmically-designed crowd-pleasing content.</p>

<blockquote><p>Streaming platforms are the only place where this [AI Generated] garbage makes any sense — a place where it would never be watched at all.</p></blockquote>

<p>Hard disagree. Not because I think AI slop is good; but because the audience doesn't care.  Most people don't notice the wires on the special effects. They can't see that the lighting is wrong on the CGI shot. The <a href="https://faroutmagazine.co.uk/10-worst-accents-cinema-history/">lead actor's shitty accent</a> passes without comment.</p>

<p>I'm not trying to slur people when I say that the majority are unsophisticated - because I include myself amongst them.</p>

<p>Audiophiles complain about MP3 compression and crappy headphones. Most of us just want to listen to our tunes, not listen to the equipment.</p>

<p>Cinephiles complain about poorly calibrated projectors and or motion smoothing on TVs. Most of us just want to crunch popcorn and see big explosions.</p>

<p>Fact-checkers complain about <a href="https://shkspr.mobi/blog/2020/04/who-do-you-think-you-are-kidding-mr-feynman/">fictional quotes from famous people</a>. Most of us just want a daily dose of something that sounds like wisdom.</p>

<p>Pornographers <a href="https://www.imdb.com/title/tt0118749/quotes/?item=qt0304288&amp;ref_=ext_shr_lnk">complain about the move from gorgeous celluloid to low fidelity videotape</a>. Most of us just want to rent a VHS rather than visit a cinema for our extra-special-personal-time.</p>

<p>Fashionistas <a href="https://putthison.com/when-i-was-young-there-were-beatniks-hippies/">decry the homogeneity of modern dress</a>. Most of us think jeans and a t-shirt are basically fine.</p>

<p>Is the quality of pizza better from a tiny restaurant hidden away in an Italian village using only fresh ingredients? I'm sure it is. But Domino's delivers something good enough, cheap enough, and hot enough.</p>

<p>Next year, your pizza will be topped with <a href="https://shkspr.mobi/blog/2023/01/restaurant-review-3d-printed-redefine-meat-unity-diner/">cheap 3D printed "meat"</a> and, while chefs will decry it as an affront to culinary perfection, it'll be cheap and tasty. Besides, you're munching on it while chatting to friends and watching something dopey on Netflix. Call it the rise of "Casual Eating".</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=55162&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/12/most-people-dont-care-about-quality/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Discord is not Documentation]]></title>
		<link>https://shkspr.mobi/blog/2023/07/discord-is-not-documentation/</link>
					<comments>https://shkspr.mobi/blog/2023/07/discord-is-not-documentation/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 16 Jul 2023 11:34:04 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[watchy]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=46240</guid>

					<description><![CDATA[I&#039;m going to be slightly contrarian and say that I like Discord. It&#039;s great to be able to get real-time help on a problem. And it is fun to see, again in real-time, what other people are working on and struggling with.  In truth, Discord is no harder to sign up to than Slack, Matrix, Gitter, IRC, or whatever. And of course Open Source projects will follow the maxim of &#34;go where your audience…]]></description>
										<content:encoded><![CDATA[<p>I'm going to be slightly contrarian and say that I <em>like</em> Discord. It's great to be able to get real-time help on a problem. And it is fun to see, again in real-time, what other people are working on and struggling with.</p>

<p>In truth, Discord is no harder to sign up to than Slack, Matrix, Gitter, IRC, or whatever. And of course Open Source projects will follow the maxim of "go where your audience are". There's no point posting everything to MySpace when everyone's already on Facebook.</p>

<p>Do I care that Discord isn't open source? Well, kinda. But I can open it in Firefox and it works just fine.</p>

<p>Discord is perfect for <em>ephemeral</em> communications.</p>

<p>But it is not a fucking substitute for documentation!</p>

<p>I'm currently getting started, and increasingly frustrated, with the <a href="https://watchy.sqfmi.com/">Watchy</a> development platform. They've effectively said "here's a barebones guide to setting it up - anything else, ask on Discord" - and it fucking sucks.</p>

<p>There's no API documentation - I have to scroll through a million messages to find anything.</p>

<p>I can't use search, because people don't know how to thread. So I can see questions but not replies.</p>

<p>When I do find replies, it's hard to know how relevant they are.  A typical Discord chat looks like:</p>

<ul>
<li>Alice: What's the command to go fullscreen?</li>
<li>Bob: Anyone know how I irrevocably format my disk without confirmation?</li>
<li>Carol: Oh, yeah, it's easy. Just pass the <code>-f</code> flag.</li>
</ul>

<p>Errrr...</p>

<p>And then you get the people who get snippy with newbie for asking a question which is frequently seen!  So infuriating.</p>

<p>I'm not necessarily advocating for <a href="https://documentation.divio.com/">the Four-Document Model</a> - which has <a href="https://www.hillelwayne.com/post/problems-with-the-4doc-model/">some critics</a> - but I just don't understand why wouldn't at least collate all of the common questions and put the answers in one place.</p>

<p>Look, writing a FAQ is probably not the right way to approach comprehensive documentation. But if you can't even be bothered to do that, perhaps you shouldn't be releasing a product in the first place?</p>

<p>/rant</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=46240&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/07/discord-is-not-documentation/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Stop treating eBooks like paper books]]></title>
		<link>https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/</link>
					<comments>https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 14 Apr 2023 11:34:31 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[epub]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=45470</guid>

					<description><![CDATA[As part of my never-ending quest to banish this skeuomorph from the world…  I was reading a fascinating eBook recently which was, sadly, designed to mimic a legacy / paper book. To the point where the authoring software had hard-coded in page numbers and forced them to be displayed.  Here&#039;s what it looked like:    There are two abominations here. There&#039;s no need to interrupt the reading e…]]></description>
										<content:encoded><![CDATA[<p>As part of my never-ending quest to banish this skeuomorph from the world…</p>

<p>I was reading a fascinating eBook recently which was, sadly, designed to mimic a legacy / paper book. To the point where the authoring software had hard-coded in page numbers and forced them to be displayed.</p>

<p>Here's what it looked like:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/03/ebook-pages.png" alt="Screenshot of a page of an eBook. The page number splits the page in half. Footnotes are visible at the bottom of the bisected page." width="1091" height="520" class="aligncenter size-full wp-image-45499">

<p>There are two abominations here. There's no need to interrupt the reading experience by bisecting a page and displaying the page numbers. And there's no need to put footnotes at the actual foot of the artificial page.</p>

<p>The whole point of an eBook is to free the reader from the tyranny of the publisher's choices. If the reader wants to justify the text, change the font, hide all footnotes, or has strong opinions about <a href="https://www.indesignskills.com/tutorials/widows-and-orphans/">widows and orphans</a> - they can choose a reading experience which suits their needs.</p>

<p>Let's take a look at the code behind the page and how it <em>should</em> been written.</p>

<h2 id="page-numbers"><a href="https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/#page-numbers">Page numbers</a></h2>

<p>The HTML the book uses to show the page numbers is:</p>

<pre><code class="language-html">   ...
   &lt;div class="page-break"&gt;end p.16&lt;/div&gt;
   &lt;div id="page_16"&gt;&nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="page-bounds"&gt;
   &lt;div id="acprof-0195171276-div1-8c"&gt;
      &lt;div class="para"&gt;
         ...
</code></pre>

<p>The CSS is:</p>

<pre><code class="language-css">div.page-break {
    text-align: right;
    line-height: 1px;
    font-size: 10px;
    color: #aca368;
    border-bottom: 1px solid #706650;
    padding: 3px 4px 8px 0px;
    margin: 0px 2px 10px 0px;
}
</code></pre>

<p>So, what <em>should</em> it be?  I've previously <a href="https://shkspr.mobi/blog/2020/11/how-do-you-raise-a-software-bug-with-a-book-publisher/">written about the support ePub has for page numbers</a>. And the answer is well documented in the specification.</p>

<p>It's simply this:</p>

<pre><code class="language-html">&lt;span epub:type="pagebreak" id="page_123_a" title="123" /&gt;
</code></pre>

<p>That inserts an invisible pagebreak. The reader can <em>choose</em> to render one page per physical screen. Or they can <em>choose</em> to display a page number. Or they can <em>choose</em> to ignore the suggestion.</p>

<h2 id="html-footnotes"><a href="https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/#html-footnotes">HTML Footnotes</a></h2>

<p>Here's the code as presented in the ePub:</p>

<pre><code class="language-html">   &lt;div class="para"&gt;Not only was that result in disagreement with the other trials made by the committee but also it was the direct opposite of the observations by Adams and De Luc, &lt;/div&gt;
&lt;/div&gt;
&lt;div class="footnote-inline"&gt;
   &lt;div&gt;15. See &lt;span id="xref-acprof-0195171276-bibItem-84c"&gt;&lt;a href="content9.html#acprof-0195171276-bibItem-84"&gt;De Luc 1772&lt;/a&gt;&lt;/span&gt;, 1:219-221, §408.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="footnote-inline"&gt;
   &lt;div&gt;16. See ...&lt;/div&gt;
&lt;/div&gt;
&lt;div class="page-break"&gt;end p.16&lt;/div&gt;
...
</code></pre>

<p>There's no need to put footnotes <em>alongside</em> the text. If you do that, you're basically telling the reader that you know better than them how they want to read the book.  Most eReaders will pop-up a footnote, making it easy to read and easy to close:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2023/04/footnote-popup.jpg" alt="Product photo of a Kindle showing the popup." width="900" height="650" class="aligncenter size-full wp-image-45500">

<p>The footnote link should have a specific ePub type, and the footnote itself is semantically represented as an <code>&lt;aside&gt;</code> with it's own type:</p>

<pre><code class="language-html">&lt;p&gt;The use of dilithium crystals was discouraged&lt;a epub:type="noteref" href="https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/#n1" id="fn1"&gt;1&lt;/a&gt;.&lt;/p&gt;

&lt;aside epub:type="footnote" id="n1"&gt;
    &lt;p&gt;&lt;a epub:type="noteref" href="https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/#fn1"&gt;1.&lt;/a&gt; Scott, M (2257).&lt;/p&gt;
&lt;/aside&gt;
</code></pre>

<p>The footnote text can be placed at the end of the chapter or the end of the book. No need to force it into the reader's eyeline.</p>

<p>There's also <a href="https://kdp.amazon.com/en_US/help/topic/GH4DRT75GWWAGBTU#footnote_guideline">similar advice from Kindle</a>.</p>

<h2 id="what-have-we-learned-today"><a href="https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/#what-have-we-learned-today">What have we learned today</a></h2>

<p>Books are magical. And, in my humble opinion, eBooks are <em>better</em> than legacy paper books. I can boost the font size of my eBook rather than having to buy an expensive large-print version. I can navigate by searching, or by semantic features, rather than grubbing around with page numbers. And I can choose to follow a footnote or ignore it as the whim strikes me.</p>

<p>But all that requires the publishers actually understanding how to take advantage of the format.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=45470&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/04/stop-treating-ebooks-like-paper-books/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Everything is simple, until you're an expert]]></title>
		<link>https://shkspr.mobi/blog/2022/12/everything-is-simple-until-youre-an-expert/</link>
					<comments>https://shkspr.mobi/blog/2022/12/everything-is-simple-until-youre-an-expert/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 07 Dec 2022 12:34:44 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=43627</guid>

					<description><![CDATA[I recently watched a brilliant documentary about the building of London&#039;s CrossRail system. It discussed many of the challenges involved with a &#34;mega project&#34; - and gave a little insight into what went wrong during construction.  What struck me though, was how simple it seems to build an underground railway!   Dig some tunnels Lay some tracks Done   I mean, that&#039;s all it is when you get down to…]]></description>
										<content:encoded><![CDATA[<p>I recently watched a brilliant <a href="https://www.bbc.co.uk/programmes/b08ry6fy">documentary about the building of London's CrossRail system</a>. It discussed many of the challenges involved with a "mega project" - and gave a little insight into what went wrong during construction.</p>

<p>What struck me though, was how <em>simple</em> it seems to build an underground railway!</p>

<ol>
<li>Dig some tunnels</li>
<li>Lay some tracks</li>
<li>Done</li>
</ol>

<p>I mean, that's all it is when you get down to it, right?</p>

<p>But, of course, even something as basic as digging a tunnel is hard. Sure, even the layperson can tell that you probably need some way to stop a tunnel from collapsing. But you probably need a geologist to tell you what sort of material you'll be digging through. And a health and safety expert to tell you how to keep people safe down there. And a logistics expert to tell you how you deliver all the necessary parts through a crowded city. And... and... and...</p>

<p>Hell, the tunnel was so long <a href="https://www.ianvisits.co.uk/articles/how-crossrail-was-affected-by-the-curvature-of-the-earth-24285/">it was affected by the curvature of the Earth</a>!</p>

<p>It is the same with any moderately complex project. When something goes slightly wrong, you'll always get people (like me) whinging "Why didn't they just...?"</p>

<p>The modern world is irreducibly complex. If you've ever read "<a href="https://shkspr.mobi/blog/2019/11/some-criticisms-of-i-pencil/">I, Pencil</a>", you'll know this has been the case for centuries. No one can know everything.  Nor can they understand the ramifications of the choices they make - as so eloquently described in <a href="https://adendate.medium.com/what-the-good-place-teaches-us-about-systems-thinking-fdc61fcfda71">The Good Place</a>:</p>

<iframe title="Michael Knows Why the Point System Is Broken - The Good Place (Episode Highlight)" width="620" height="349" src="https://www.youtube.com/embed/R8m_5HDZF7w?start=100&amp;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>As an outsider, it is probably functionally impossible to <em>accurately</em> criticise the way any complex system works. It's possible to criticise the outcomes. Or the impact. Or the the way it makes you feel. But I don't think non-experts can meaningfully diagnose complex, multidisciplinary, or systemic issues.</p>

<p>And that makes me sad sometimes.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=43627&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/12/everything-is-simple-until-youre-an-expert/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Have ComputerShare screwed up your EquatePlus account? Call them on 08009231507]]></title>
		<link>https://shkspr.mobi/blog/2021/04/have-computershare-screwed-up-your-equateplus-account-call-them-on-08009231507/</link>
					<comments>https://shkspr.mobi/blog/2021/04/have-computershare-screwed-up-your-equateplus-account-call-them-on-08009231507/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 18 Apr 2021 11:41:10 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=38685</guid>

					<description><![CDATA[I hope this rant is useful to someone...  I have some shares leftover from an old employer. The sharesave account was managed by ComputerShare who are pretty crap. For some reason, ComputerShare have decided to migrate lots of their customers to an equally crap service called EquatePlus.  I only found out about this when trying to log in to ComputerShare to do my annual tax return. It told me to…]]></description>
										<content:encoded><![CDATA[<p>I hope this rant is useful to someone...</p>

<p>I have some shares leftover from an old employer. The sharesave account was managed by ComputerShare who are pretty crap. For some reason, ComputerShare have decided to migrate lots of their customers to an equally crap service called EquatePlus.</p>

<p>I only found out about this when trying to log in to ComputerShare to do my annual tax return. It told me to bugger off to EquatePlus.  Because sending proactive communications to your users is so hard...</p>

<p>I tried logging in with my old username, but it didn't work. Because why would you bother migrating a user ID across...?</p>

<p>I tried resetting my password using the email address they had on file. But it didn't recognise that.</p>

<p>I'll tell you what it <em>did</em> recognise. The email address from my old employer. The one I left 5 years ago. The one I no longer have access to.</p>

<p>The only helpdesk numbers listed were either international or cost to call.  Forget that noise! I'm not paying money to correct someone else's mistake.</p>

<p>After a bit of light investigating, I found that the <a href="https://web.archive.org/web/20230801012523/https://www-uk.computershare.com/Employee/Login/CompanyUpgradedLandingPage.aspx?bhjs=1&amp;fla=0">ASDA Sharesave page</a> listed a generic freephone number for ComputerShare:</p>

<h2 id="0800-923-1507"><a href="tel:+448009231507">0800 923 1507</a><a href="https://shkspr.mobi/blog/2021/04/have-computershare-screwed-up-your-equateplus-account-call-them-on-08009231507/#0800-923-1507">🔗</a></h2>

<p>It welcomed me to the ASDA/Walmart service - I did not have shares with them - but after punching through the various options, a lovely customer service agent asked me which company I worked for. I told them, and they gave me my username and password (after passing suitable security checks).</p>

<p>Apparently, ComputerShare ignores any changes of postal address or email address that you may have made to your account and will default to whatever your contact details were when you were still employed.  Why? Because they are crap.</p>

<p>Anyway, after all that, it turns out that my miniscule shareholding has halved in value since I last checked. At least that's one thing I can't really blame on ComputerShare's incompetence!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=38685&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/04/have-computershare-screwed-up-your-equateplus-account-call-them-on-08009231507/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[My imaginary children aren't using your streaming service]]></title>
		<link>https://shkspr.mobi/blog/2021/04/my-imaginary-children-arent-using-your-streaming-service/</link>
					<comments>https://shkspr.mobi/blog/2021/04/my-imaginary-children-arent-using-your-streaming-service/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 13 Apr 2021 11:08:02 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[childfree]]></category>
		<category><![CDATA[moan]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[tv]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=37780</guid>

					<description><![CDATA[Whenever I start up Netflix, I&#039;m asked if I want to create an account for my children.    I don&#039;t have children. I don&#039;t want children. I find most children annoying - not yours, obviously, yours are lovely. But I resent being asked every single time whether my imaginary kids want an account. It&#039;s just annoying.  I can&#039;t imagine what it is like for bereaved parents who have recently lost a child. …]]></description>
										<content:encoded><![CDATA[<p>Whenever I start up Netflix, I'm asked if I want to create an account for my children.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/02/Who-is-watching-Netflix.jpg" alt="Screen asking &quot;Who is watching Netflix&quot; with a forced children option." width="800" height="600" class="aligncenter size-full wp-image-38143">

<p>I don't have children. I don't want children. I find most children annoying - not yours, obviously, yours are lovely. But I resent being asked <em>every single time</em> whether my imaginary kids want an account. It's just annoying.</p>

<p>I can't imagine what it is like for bereaved parents who have recently lost a child. Or for those struggling with fertility issues. That constant reminder every time they try to numb the pain with a sitcom.</p>

<p>For some reason, all the streaming services are <em>desperate</em> for me to add accounts for my (imaginary) children. Are they worried about being sued if little Jimothy accidentally hears a swear word?  Thankfully, Netflix lets you delete this imaginary child.</p>

<p>The BBC's iPlayer is less enlightened. They recently forced an "add child account" setting to the front page.  It is impossible to remove it.</p>

<blockquote class="social-embed" id="social-embed-1267335629878243329" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-1266437132127739919" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Hmmm. <a href="https://twitter.com/BBCiPlayer">@BBCiPlayer</a> have forced a children account onto our iplayer.<br><a href="https://www.bbc.co.uk/iplayer/help/questions/recent-changes-to-iplayer/children-tv">bbc.co.uk/iplayer/help/q…</a><br>Anyone know how to remove it? Can't see anything in the options.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1266437132127739919"><span aria-label="5 likes" class="social-embed-meta">❤️ 5</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2020-05-29T18:31:56.000Z" itemprop="datePublished">18:31 - Fri 29 May 2020</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">The BBC believes that every household has children.<br>What an utterly bizarre choice. <a href="https://x.com/edent/status/1267335629878243329/photo/1">pic.x.com/lHDIy6RR8L</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/EZZ6xX2XQAAhNgj.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="Thank you for contacting BBC iPlayer Support.I understand you wish to know how to get rid of the 'Children's' profilde on the iPlayer app on your TV.Unfortunately, there is no way to remove this.We are going to explore the possibility of having the ability to remove or hide the children option for those who do not want it. However, we cannot confirm at this point whether this will definitely happen due to the technical ramifications this could have across the whole of BBC iPlayer on your TV, and we are having to prioritise our work at the moment.We’ve had a range of feedback since we launched the children’s experience on connected TVs, so thank you for your comments. We’ve shared them with the BBC iPlayer managers and developers." src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1267335629878243329"><span aria-label="3 likes" class="social-embed-meta">❤️ 3</span><span aria-label="3 replies" class="social-embed-meta">💬 3</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2020-06-01T06:02:14.000Z" itemprop="datePublished">06:02 - Mon 01 June 2020</time></a></footer></blockquote>

<p>Apparently, it is technically impossible to remove an option which has recently appeared.</p>

<p>Amazon Prime has the same forced default child-profile. Although, thankfully, they allow you to remove it with a couple of clicks.</p>

<p>Channel 4 goes a step further. Any time I want to watch anything with sex, drugs, or violence - I have to confirm that I don't want to set up a parental lock.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/02/Channel-4-Player.jpg" alt="Channel 4 Player asking me to confirm if I'm over 18." width="800" height="600" class="aligncenter size-full wp-image-38144">

<p>There's no way that I can find to dismiss the screen. That's an extra click for my RSI-ridden hands every time I want to watch a stupid game show.</p>

<p>Here's the thing.  <a href="https://www.ons.gov.uk/peoplepopulationandcommunity/birthsdeathsandmarriages/families/bulletins/familiesandhouseholds/2019">The majority of households in the UK don't have kids</a>.</p>

<blockquote><p>London contained the highest proportion of families with dependent children in 2019; accounting for half of all families in London, compared with the UK average of 42.0%.</p></blockquote>

<p>There's this weird belief that everything needs to be made safe for children. Even if no children are present, we have to protect them. That has led to some <em>weird</em> antipatterns.</p>

<p>Frankly, if a child somehow makes it into my home, and is left unsupervised long enough to work out which of the 7 remote controls turns on the TV and surround sound system, and figures out how to access Netflix - I'd say they're mature enough to watch whatever they want.</p>

<h2 id="whats-the-solution"><a href="https://shkspr.mobi/blog/2021/04/my-imaginary-children-arent-using-your-streaming-service/#whats-the-solution">What's the solution?</a></h2>

<p>I get that making your UI easy for harried parents is a priority.  They're a big market - and they can be vocal about any perceived harm to their little ones. But there's no reason to <em>keep</em> showing the option if someone doesn't engage with it.  You can ask if a child profile is necessary during set up. If you have a pop-up asking if a user wants a child-friendly account, make sure it has a "never ask me again" option.</p>

<p>The world doesn't revolve around children. It's OK to let people who don't have kids use your services without frustration.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=37780&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/04/my-imaginary-children-arent-using-your-streaming-service/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[What's the point of Zip files?]]></title>
		<link>https://shkspr.mobi/blog/2021/02/whats-the-point-of-zip-files/</link>
					<comments>https://shkspr.mobi/blog/2021/02/whats-the-point-of-zip-files/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 16 Feb 2021 12:54:48 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=38004</guid>

					<description><![CDATA[My laptop ran out of space yesterday. Why? Useless ZIP files!  I needed to download a Windows Virtual Machine in order to upgrade the firmware on a device (long story). The official Windows 10 VM is 20GB  TWENTY GIGA-FUCKING-BYTES!!!  It downloaded reasonably quickly - yay fibre! But I had to wait almost as long to unzip the bloody thing. Whereupon, I discovered that zipping the file - and it was …]]></description>
										<content:encoded><![CDATA[<p>My laptop ran out of space yesterday. Why? Useless ZIP files!</p>

<p>I needed to download a Windows Virtual Machine in order to upgrade the firmware on a device (long story). The official Windows 10 VM is 20GB</p>

<p>TWENTY GIGA-FUCKING-BYTES!!!</p>

<p>It downloaded reasonably quickly - yay fibre! But I had to wait almost as long to unzip the bloody thing. Whereupon, I discovered that zipping the file - and it was only <em>one single file</em> in there - saved a whole 200MB. Yup, a 1% saving.</p>

<p>As it happens, I downloaded the wrong VM. So I downloaded the right one. A similar size, although this had couple of files in it - but the ZIP didn't save much space.</p>

<p>At which point, my laptop - not unreasonably - threw a wobbly because I'd suddenly consumed 80GB of space!</p>

<p>I'm sure you're about to tell me that there's an esoteric Linux command that will automagically extract a file, delete the original archive, and repartition my SSD for optimal layout - but that's not the point.</p>

<p>Every web server can - and should - gzip files on transmission.  Manually zipping a single file on your server doesn't save any download time. It doesn't save any bandwidth.</p>

<p>Perhaps it makes sense to bundle a few related files together - but if it is a single large file, a .zip just wastes the time and disk space of anyone who downloads it.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=38004&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/02/whats-the-point-of-zip-files/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Why Lying is Essential for Privacy Herd Immunity]]></title>
		<link>https://shkspr.mobi/blog/2020/11/why-lying-is-essential-for-privacy-herd-immunity/</link>
					<comments>https://shkspr.mobi/blog/2020/11/why-lying-is-essential-for-privacy-herd-immunity/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 15 Nov 2020 12:14:06 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=37186</guid>

					<description><![CDATA[My date of birth is the 1st of January 1901. My phone number is 0000000000. My gender is decided on a coin flip. My country of residence is Afghanistan. And my Mother&#039;s maiden name is a random mix of upper-case, lower-case, numbers, and symbols.  Well, that&#039;s what you would believe if you were any website I&#039;ve registered for. If you&#039;re a free WiFi provider, you get random details. Unless you have …]]></description>
										<content:encoded><![CDATA[<p>My date of birth is the 1st of January 1901. My phone number is 0000000000. My gender is decided on a coin flip. My country of residence is Afghanistan. And my Mother's maiden name is a random mix of upper-case, lower-case, numbers, and symbols.</p>

<p>Well, that's what you would believe if you were any website I've registered for. If you're a free WiFi provider, you get random details. Unless you have a legitimate reason for needing my name and address, you'll find that I live in a desirable area of SW1A 1AA.</p>

<p>You have a moral imperative to lie. The people who want your details are going to abuse your data. And that hurts you and the people around you.  Targeted adverts are used to make you buy things you don't want and to believe things which aren't true. Deep data collection is used to work out what sort of person you are, the lifestyle you lead, and the risks you take.</p>

<p>Even if you think you are totally immune to advertising (you're not) and that you have nothing to hide (you do) - mass data collection is used to target people <em>like</em> you.</p>

<p>It is vital that you add as much statistical "noise" to the data collection pool as possible. This helps protect <em>everyone</em>.</p>

<p>Giving fake details is a position <a href="https://shkspr.mobi/blog/2012/10/the-eye-of-the-storm/">supported by security professionals</a>.</p>

<blockquote><p><strong>3. My favourite pet is “the Eiffel Tower”</strong>
</p><p>Enter the minimum amount of authentic information into online registration forms. Do you really need to enter genuine information in every field if there’s no legal reason to do so?
</p><p><a href="https://www.cpni.gov.uk/system/files/documents/d3/e8/28-February-2017-Edited-In-house-My-Digital-Footprint-booklet.pdf">My Digital Footprint - Centre for the Protection of National Infrastructure</a> 
</p></blockquote>

<p>This isn't a theoretical concern. Earlier this year, <a href="https://www.bbc.co.uk/news/technology-51682280">Network Rail's WiFi provider exposed the details of people who'd registered for their free WiFi</a>.</p>

<p>As the <a href="https://www.ncsc.gov.uk/guidance/shopping-online-securely">UK's National Cyber Security Centre says</a>:</p>

<blockquote><p>You should only fill in the <strong>mandatory</strong> details on a website</p></blockquote>

<p>You should <a href="https://shkspr.mobi/blog/2018/04/ad-blocking-as-a-radical-political-act/">use an Ad Blocker as regularly as you'd use a condom</a> - and for much the same reason.</p>

<p>If you have the patience, get a disposable SIM card and use that for receiving calls and texts from businesses or marketing firms. Then replace it after a few months.</p>

<p>To be clear - don't lie to people who have a legal right or legitimate need to know your details. Lying about your address to a delivery company means you won't get your parcel, and lying to your doctor could result in harm.  Don't even think of deceiving the taxman.</p>

<p>But if someone you have no reason to trust asks for your data - feed them garbage.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=37186&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/11/why-lying-is-essential-for-privacy-herd-immunity/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Localisation is too hard for Gmail]]></title>
		<link>https://shkspr.mobi/blog/2020/10/localisation-is-too-hard-for-gmail/</link>
					<comments>https://shkspr.mobi/blog/2020/10/localisation-is-too-hard-for-gmail/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 21 Oct 2020 11:05:55 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=36992</guid>

					<description><![CDATA[/ləʊk(ə)lʌɪˈzeɪʃ(ə)n/ The ability to adjust a user-interface to the user&#039;s local language or dialect  Because I live in the UK, I speak en_GB (English, Great Britain) rather than en_US (English, Simplified United States).  Mostly, all dialects of English are mutually intelligible. Sure, the Brits love the letter U and the Americans stick a Z in every possible word. But we get along reasonably well…]]></description>
										<content:encoded><![CDATA[<blockquote><p>/ləʊk(ə)lʌɪˈzeɪʃ(ə)n/
The ability to adjust a user-interface to the user's local language or dialect</p></blockquote>

<p>Because I live in the UK, I speak en_GB (English, Great Britain) rather than en_US (English, <del>Simplified</del> United States).</p>

<p>Mostly, all dialects of English are mutually intelligible. Sure, the Brits love the letter U and the Americans stick a Z in every possible word. But we get along reasonably well.  Except in Gmail.</p>

<p>Here's my en_GB localised Gmail interface. Note how there is a folder called "Bin".</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/Bin-fs8.png" alt="The Gmail Interface." width="795" height="703" class="aligncenter size-full wp-image-36993">

<p>Everyone using Gmail in en_GB will know that deleted emails go into the "Bin".</p>

<p>Gmail has <a href="https://support.google.com/mail/answer/7190?hl=en">a handy search feature</a> to allow you to find emails in a specific folder.  For example "Bob in:spam" finds all email containing the word "Bob" in your spam folder. "Proposal in:sent" gets everything you've sent with the word proposal.</p>

<p>But it is <em>impossible</em> to search the "Bin" folder.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/Beer-in-Bin-fs8.png" alt="A search for &quot;beer in:bin&quot; returns nothing." width="977" height="204" class="aligncenter size-full wp-image-36995">

<p>Why? Because you have to search the <em>Trash</em> folder.  Because that's the names used by Americans.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/Beer-in-Trash-fs8.png" alt="Lots of results in the trash folder." width="983" height="336" class="aligncenter size-full wp-image-36996">

<blockquote><p>/hɪˈdʒɛməni/</p></blockquote>

<p>The same is true even if you've chosen a non-English language.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/Gmail-in-German-fs8.png" alt="The Gmail interface in German." width="1057" height="586" class="aligncenter size-full wp-image-36997"></p>

<p>Sadly, Google don't respond to user complaints or feedback. The best you can do is hope a ranty blog post gets high enough traction on social media. Then, maybe, something will change.</p>

<video src="https://shkspr.mobi/blog/wp-content/uploads/2020/10/oscar-the-grouch.mp4" autoplay="" muted="" loop="">

<p>If you're building a service - remember that localisation is about much more than the GUI. All aspects of the interface need to be considered.</p>
</video><img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=36992&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/10/localisation-is-too-hard-for-gmail/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[We've built a towering pile of shite]]></title>
		<link>https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/</link>
					<comments>https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 06 Jun 2020 11:35:03 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=35116</guid>

					<description><![CDATA[This a rant, written at midnight, after battling software errors. Set your profanity filters accordingly.  I despair over the state of software engineering - specifically, stability. We seem to have lost the understanding that computers are there to do the hard work for us. And I don&#039;t think we ever believed in a user-centred approach to developer tools.  The last time I developed an Android app…]]></description>
										<content:encoded><![CDATA[<p><mark>This a rant, written at midnight, after battling software errors. Set your profanity filters accordingly.</mark></p>

<p>I despair over the state of software engineering - specifically, stability. We seem to have lost the understanding that computers are there to do the hard work for us. And I don't think we <em>ever</em> believed in a user-centred approach to developer tools.</p>

<p>The last time I developed an Android app all by myself was… fuck… Doughnut? Kitkat? Too long ago. Last week, I found a small open source Android app that I wanted to alter. Nothing drastic, just changing a few strings and a couple of images.</p>

<p>The repo was 3 years old. Surely it wouldn't be that hard to get running again? Ha!</p>

<p>Here's what went well.</p>

<ol>
<li>Installing Android Studio. I remember when this was a chore - but I just installed the Flatpak, opened it, and let it update.</li>
<li>Cloning the repo. Again, simple.</li>
<li>Importing the project. Couple of clicks. Done.</li>
</ol>

<p>Then it all went to hell.</p>

<h2 id="fail-1-moving-targets"><a href="https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/#fail-1-moving-targets">Fail #1 - moving targets</a></h2>

<p><code>Gradle sync failed: Could not find com.afollestad:bridge:3.2.5.</code></p>

<p>That's annoying. One of the libraries the app wanted to import was lost. Where was it?</p>

<p>It appears to be in <a href="https://mvnrepository.com/artifact/com.afollestad/bridge/3.2.5">MVN Repository</a> with a note that:</p>

<blockquote><p>this artifact is located at Spring Plugins repository (<code>https://repo.spring.io/plugins-release/</code>)</p></blockquote>

<p>Things move. I get that. But why isn't there some form of automatic forwarding in place?</p>

<p>I <a href="https://github.com/materialos/android-icon-pack/issues/55#issuecomment-631067097">fixed the issue</a> and moved on.</p>

<p>But, as a new(ish) developer - how do I understand the complicated relationship between an app, the tools, the repositories, and all their weirdness? Where's the user-centred design in all this?</p>

<h2 id="fail-2-automagic-updates"><a href="https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/#fail-2-automagic-updates">Fail 2 - automagic updates</a></h2>

<p>Google's Android Studio is complicated. And it puts all the effort on the user. It kept complaining that targets were too low, and needed to be updated. It didn't actually <em>offer</em> to update anything itself. It didn't tell me where the error was. It didn't say "hey, we can automatically update some things. Here are the risks. Want to proceed?"
It just left me in limbo.</p>

<p>So I found the strings and manually changed 5 numbers.</p>

<p>Why don't our tools do the hard work for us?  An IDE isn't a screwdriver - it has knowledge about what it is doing and what problems it is encountering. It doesn't need to make changes unilaterally, but it could at least make helpful suggestions.</p>

<p>It reminds me of one of my earliest frustrations when I first started to learn C++ back in the 1990s. The compiler would say "Missing semicolon on line 427." To which I'd reply "If you know <em>what</em> is missing, and you know <em>where</em> it is missing, why not add it back yourself? You useless piece of crap!"</p>

<h2 id="fail-3-change-of-syntax"><a href="https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/#fail-3-change-of-syntax">Fail 3 - change of syntax</a></h2>

<p>Moving on. Deep breaths. Gradle started complaining that I couldn't use "compile" any more.  Apparently it was deprecated.  OK.  So what's the fix?  Again, neither Gradle nor Android Studio would tell me. They knew there was a problem, they <em>probably</em> knew what would get it working. But they stayed silent. Because fuck the users, amirite!?</p>

<p>The fix was simple. I manually replaced the word "compile" with the word "implementation".</p>

<p>That's it.</p>

<p>I did that a dozen times and it worked.  What's the difference between the two? I don't know. I don't particularly care. I'm sure there was a very good reason for replacing one word with another. I'm sure it makes a profound difference to someone.  But for me, the end result was the same. The app now compiled.</p>

<p>Imagine a user interface which suddenly said "you must turn things clockwise from now on!" You'd be all like "WTF? What's wrong with anticlockwise? That's the way I've done it for years." And they'd be all like "Dude! Clockwise is the way to go. It all has to change." And you'd go "Mate, can't you just install them backwards or something so I don't have to change my behaviour to accommodate your needs?" And then they'd spit at you.</p>

<p>Why doesn't Android Studio / Gradle / Whatever just go "Mate - you've used <code>compile</code> here - that won't work. Want me to automatically update the syntax? It'll probably be fine."</p>

<p>Don't make me think. And don't make me waste my time fixing problems that you have caused.</p>

<h2 id="fail-4-who-are-our-users"><a href="https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/#fail-4-who-are-our-users">Fail 4 - who are our users?</a></h2>

<p>I ranted on Twitter, of course, and had a <a href="https://twitter.com/CedricChampeau/status/1263010830360207360">series</a> of <a href="https://twitter.com/CedricChampeau/status/1263013321143390208">frustrating conversations</a> with someone from Gradle.  Twitter is a crappy mechanism for reasoned discourse. So I'll try to be more lucid here.</p>

<p>Forums are full of people going "I can't get this project to work - Gradle is throwing weird error messages. Help me. I don't understand. Please - help!"</p>

<p>Gradle does not do any user research. It never sits down with independent developers, newbies, or seasoned pros.  It never tests its error messages. It doesn't do developer relations. It doesn't spot bad implementations in the wild and offer helpful suggestion. It doesn't relentlessly focus on making things easier for users.</p>

<p>Gradle focusses on large organisations and caters almost exclusively to their needs. That's fair enough. It's their business and they can run it how they like.</p>

<p>The same is broadly true of Android. Its development tools are focussed on large teams of highly trained software engineers, who all intimately understand every esoteric aspect of App development.</p>

<p>It's great if you're a salaried employee with a large support structure. But for small and amateur developers, it's a nightmare.</p>

<p>I've lost count of the number of projects I've seen which start by saying "Simply install Flargnle in the normal way..." Oh, great, another technology that I need to learn in order to make a cool widget.</p>

<h2 id="fail-5-extrapolating-from-limited-data"><a href="https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/#fail-5-extrapolating-from-limited-data">Fail 5 - extrapolating from limited data</a></h2>

<p>I've used this project as an example. And I am being <em>deeply</em> unfair to Gradle, Maven, Android, and everyone else. I'm tired and frustrated.</p>

<p>But I'm sure you've found the same thing with other bits of software. You have to download endless libraries - and then get stuck in dependency hell because v1.1 isn't compatible with v1.2 and the original Google Code link has died and the mailing list hasn't received a message since 2015 and the author's GitHub shows they're more interested in the latest JavaScript framework and the error message points you to a USENET message and the last StackOverflow answer is "<a href="https://xkcd.com/979/">nevermind, figured it out</a>".</p>

<p>The job of a computer is to do the hard and boring work for us.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=35116&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/06/weve-built-a-towering-pile-of-shite/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Things I can't do on MacOS which I can do on Ubuntu]]></title>
		<link>https://shkspr.mobi/blog/2020/04/things-i-cant-do-on-macos-which-i-can-do-on-ubuntu/</link>
					<comments>https://shkspr.mobi/blog/2020/04/things-i-cant-do-on-macos-which-i-can-do-on-ubuntu/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 26 Apr 2020 11:14:04 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=34793</guid>

					<description><![CDATA[I&#039;ve never &#34;got&#34; the appeal of a Mac. But I have to use one for work.  Here&#039;s a partial list of everything I cannot do on a Mac, but I can do on Ubuntu.  These are all objective facts. These are things which either are impossible, or require adding unsupported 3rd party software - sometimes at a cost.   Resize the system font   I find the menu bar at the top too small. The only way to do this on…]]></description>
										<content:encoded><![CDATA[<p>I've never "got" the appeal of a Mac. But I have to use one for work.</p>

<p>Here's a partial list of everything I <em>cannot</em> do on a Mac, but I <em>can</em> do on Ubuntu.</p>

<p>These are all objective facts. These are things which either are impossible, or require adding unsupported 3rd party software - sometimes at a cost.</p>

<ul>
<li>Resize the system font

<ul>
<li>I find the menu bar at the top too small. The only way to do this on MacOS is to lower the resolution of the entire screen!</li>
</ul></li>
<li>Change the system font

<ul>
<li>I know you like <del>Helvetica</del> San Francisco - but I find it a bit too thin to read.</li>
</ul></li>
<li>Focus Follow Mouse

<ul>
<li>I have multiple screens and multiple windows. I want to be able to hover over a new one and start interacting with it without clicking.</li>
</ul></li>
<li>Change my mouse button order

<ul>
<li>On Linux, this is a <a href="https://shkspr.mobi/blog/2011/06/review-evoluent-vertical-mouse-4-and-how-to-make-it-work-in-ubuntu/">complex command-line incantation</a>. On MacOS it is impossible. I use a vertical mouse and use my thumb to click. RSI FTW!</li>
</ul></li>
<li>Read files from MTP devices

<ul>
<li>If I stick a USB cable between my phone and Linux laptop, I can see the Android files on my laptop. I can open them, move them around, etc. On a Mac I need to install some shonky 3rd party software which rarely works.</li>
</ul></li>
<li>Always on top windows

<ul>
<li>Sometimes I want to keep the calculator on screen while I type an email. Is that too much to ask?</li>
</ul></li>
<li>No way to remove UI elements.

<ul>
<li>I don't want a notification icon in the top right of my screen. I prefer having the clock on the left. Trivial in Linux, static in MacOS.</li>
</ul></li>
<li>Window snapping

<ul>
<li>On Ubuntu, I drag a window to the side or to a corner, and it snaps into position. Vital when using multiple windows at once. On Mac there's a <a href="https://support.apple.com/en-gb/HT204948">half-hearted splitscreen view</a> which only supports horizontal splitting. Useless on a vertical monitor.</li>
</ul></li>
<li>See tooltips

<ul>
<li><a href="https://shkspr.mobi/blog/2020/04/accessibility-of-macos-large-cursor-hides-tooltips/">I can't see them on Mac when I have a larger cursor</a>. Weird!</li>
</ul></li>
<li>Mount an SSH or NFS drive

<ul>
<li>In Ubuntu, I get a nice little GUI for picking network shares. Impossible on Mac.</li>
</ul></li>
<li>Wobbly Windows!

<ul>
<li>Seriously MacOS. Where's the fun?</li>
</ul></li>
</ul>

<p>I know you're going to be tempted to reply with "<a href="https://knowyourmeme.com/memes/events/iphone-4-death-grip">you're using it wrong</a>" - but I'm not. This is how I like to use my computer. And it is clear that the MacBook isn't my computer - it is Apple's. 
(OK, OK! It belongs to my employer!)</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=34793&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/04/things-i-cant-do-on-macos-which-i-can-do-on-ubuntu/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Zoom's forced app is irresponsible]]></title>
		<link>https://shkspr.mobi/blog/2020/03/zooms-forced-app-is-irresponsible/</link>
					<comments>https://shkspr.mobi/blog/2020/03/zooms-forced-app-is-irresponsible/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 17 Mar 2020 12:46:14 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[WebRTC]]></category>
		<category><![CDATA[wfh]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=34441</guid>

					<description><![CDATA[Due to COVID19, I&#039;m using a wide range of video conferencing services. Those of us who have work-supplied laptops usually have locked-down hardware. No unauthorised apps can be installed.  That&#039;s not a problem for Google Hangouts - it just works in any browser. No need to install plugins or apps. Voice and video just work.  But Zoom - one of the most used VC services - falsely claims that users…]]></description>
										<content:encoded><![CDATA[<p>Due to COVID19, I'm using a wide range of video conferencing services. Those of us who have work-supplied laptops usually have locked-down hardware. No unauthorised apps can be installed.</p>

<p>That's not a problem for Google Hangouts - it just works in any browser. No need to install plugins or apps. Voice and video <em>just work.</em></p>

<p>But Zoom - one of the most used VC services - falsely claims that users need to install an app to use it.  I've had frustrated colleagues express their displeasure that they can't install an app and, therefore, have to dial in on a phone and can't see any slides.</p>

<p>Here's the thing. Zoom supports web browsers. It just hides it really well.  Only after attempting to download the app, and then waiting for a few seconds, do you get this <em>tiny</em> message saying you can join in the browser:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/03/Screenshot_2020-03-16-Join-our-Cloud-HD-Video-Meeting-now.png" alt="Screenshot of the Zoom Website." width="511" height="252" class="aligncenter size-full wp-image-34442">

<p>That's annoying and, frankly, irresponsible. People urgently need to get on calls and Zoom is deliberately making it hard to do. WebRTC works. It works really well across browsers. I'm sure the Zoom app is marvellous. But it is useless if people can't install it.</p>

<p>If you want to share a direct link to a call, use this:</p>

<p><code>https://whatever.zoom.us/wc/join/123456?pwd=</code></p>

<p>Replace the <code>whatever</code> with your company name and <code>123456</code> with your Zoom's conference ID.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=34441&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/03/zooms-forced-app-is-irresponsible/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Chromebooks aren't accessible - a five-year-old bug]]></title>
		<link>https://shkspr.mobi/blog/2019/01/chromebooks-arent-accessible-and-google-doesnt-care/</link>
					<comments>https://shkspr.mobi/blog/2019/01/chromebooks-arent-accessible-and-google-doesnt-care/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 03 Jan 2019 12:41:39 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[a11y]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rant]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=30565</guid>

					<description><![CDATA[I was in need of a new laptop, so I bought a cheap ChromeBook - mostly because Amazon could deliver it the same day.  Sadly, the trackpad was broken. Before I sent it back, I thought I&#039;d try using a mouse with it. That&#039;s when I discovered that accessibility is very much a second thought for all the young and healthy people Google employ.  I have RSI and use a vertical mouse. After decades of…]]></description>
										<content:encoded><![CDATA[<p>I was in need of a new laptop, so I bought a cheap ChromeBook - mostly because Amazon could deliver it the same day.  Sadly, the trackpad was broken. Before I sent it back, I thought I'd try using a mouse with it. That's when I discovered that accessibility is very much a second thought for all the young and healthy people Google employ.</p>

<p>I have RSI and use a vertical mouse. After decades of regular left-clicking, my index finger is worn out. So I use a thumb button to click.  Changing the order of mouse buttons is supported in all modern operating systems. Evoluent - the manufacturer of my mouse - also provide a handy tool for Windows and Mac so that I can set the mouse buttons up just the way I like them. <a href="https://shkspr.mobi/blog/2018/05/using-the-evoluent-vmcr-c-series-vertical-mouse-with-linux/">I've written a guide for how to do it on Linux</a>.</p>

<p>But with a ChromeBook? No. The message being put out is that Google doesn't want unhealthy people using its products.</p>

<p>I plugged my mouse in, and tried to change the button order. There's no way to do so. No hidden flag, no extension, no catering for abnormal people.</p>

<p>This isn't a new problem.  <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=221914">A bug was raised FIVE years ago</a>.</p>

<p>My favourite responses from Googlers to that bug are:</p>

<blockquote><p>Technically it's not hard, it's just a question of UI work.</p></blockquote>

<p>So it'll come along quickly?</p>

<blockquote><p>Chrome has always aimed to minimize UI, as these features add up.</p></blockquote>

<p>Ugh! Such a hassle to create something useable!</p>

<blockquote><p>It's clearly a power-user feature</p></blockquote>

<p>Yay! My super-power is pain in my index finger. I'm sure Professor Xavier will invite me to his special school for mutants any day now...</p>

<p>It's 2019. It is unacceptable to release a product which isn't accessible. Google is one of the most powerful companies on the planet, it employs some of the most talented people I know. But there seems to be no way to prompt them into fixing old accessibility bugs.  Perhaps a ranty blog post will push things along?</p>

<p><ins datetime="2025-02-10T13:18:29+00:00">2025 update. The bug was <a href="https://issuetracker.google.com/issues/240329173#comment19">fixed <strong>ten</strong> years after being opened!</a></ins></p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=30565&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/01/chromebooks-arent-accessible-and-google-doesnt-care/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Would you trust this ATM?]]></title>
		<link>https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/</link>
					<comments>https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 22 Apr 2018 10:33:37 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=29503</guid>

					<description><![CDATA[Fake cash-machines are an increasing problem around the UK.  Criminals attach all sorts of machinery - including fake fronts - to ATMs with the aim of stealing cash or card details.  Wandering around Oxford yesterday, I noticed this sign attached to a bank&#039;s ATM:    &#34;This ATM is running slow and may take a while to return your card. Please be patient while we try to resolve this issue. Thanks.…]]></description>
										<content:encoded><![CDATA[<p>Fake cash-machines are an increasing problem around the UK.  Criminals attach all sorts of machinery - including fake fronts - to ATMs with the aim of stealing cash or card details.</p>

<p>Wandering around Oxford yesterday, I noticed this sign attached to a bank's ATM:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2018/04/TSB-Sign-ATM.jpg" alt="A sign is taped haphazardly to an ATM. It warns people that the ATM is slow and may take a while to return their card. There is no branding on the sign. " width="900" height="1200" class="aligncenter size-full wp-image-29504">

<p>"This ATM is running slow and may take a while to return your card. Please be patient while we try to resolve this issue. Thanks. TSB Oxford."</p>

<p>Let's count all the ways this is problematic.</p>

<h2 id="appearance"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#appearance">Appearance</a></h2>

<p>This is literally sticky-taped to the front of the machine. It isn't aligned. It <em>is</em> spelled correctly. But it looks sloppy and amateur.  A criminal could have easily taped this to the front of the ATM to discourage people from complaining to the branch.</p>

<h2 id="authenticity"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#authenticity">Authenticity</a></h2>

<p>What could the bank do to make the sign look more authentic?</p>

<p>If this was the bank's handiwork, they could have printed the bank's logo. Or a phone number if people have questions.</p>

<p>Perhaps they could have added more information, or directed people to another cash-point, or had the bank manager sign the notice.</p>

<h2 id="validity"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#validity">Validity</a></h2>

<p>But, of course, a criminal could do all those things too! Colour printers are cheap, as are disposable phone numbers.</p>

<p>There's very little a user can do to immediately check the validity of the message.  All they can hope for is that, if it were fake, staff would have spotted it and torn it down.</p>

<h2 id="verification"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#verification">Verification</a></h2>

<p>While the bank is open, it's trivial to enter the bank and ask the staff if the message is genuine.</p>

<p>When the bank is closed... Well, you can wait an indeterminate period on hold, only to be told by an off-shore call-centre that they don't have any knowledge of what's happening in local branches.</p>

<h2 id="accessibility"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#accessibility">Accessibility</a></h2>

<p>Visually impaired users will not be able to read this message. <a href="https://twitter.com/edent/status/987360191694950400">Short people may not see it</a>.  It's just <em>polite</em> to make an important message available to everyone.</p>

<h2 id="integration"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#integration">Integration</a></h2>

<p>Could this message be placed on the ATM's screen - rather than the regular rotation of adverts?  From my experience working with banks, the ATMs are usually managed centrally - and are built on a fragile technology stack. That means banks are reluctant to change what's displayed on them.</p>

<p>Even if they did, people suffer from Notification Blindness - the fact that we're constantly visually assaulted by messages means that informational messages get lost in the noise.</p>

<h2 id="trust-but-verify"><a href="https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/#trust-but-verify">Trust but verify?</a></h2>

<p>One of the central problems of modern life is how to verify that something is trustworthy.</p>

<p>Whether it is a news report, a door-to-door seller, a new acquaintance - our social structures are just not set up for a distributed trust model.</p>

<p>A determined criminal can forge an identity card well enough that most people will not be able to spot that it is a fake - not without extensive experience and expensive equipment.</p>

<p>There's also the social pressure - it seems <em>rude</em> to ask someone to wait while you verify their identity. In the case of this ATM, do you want to go inside the bank and insult their sign - and then be forever known as "the jerk who thought the sign was dodgy"?</p>

<p>We can imagine a future where a sign like that had a code on it that your phone could read, which would lead you to a cryptographically signed message - verified by a trust-agent - that you could use to assure yourself that this was a genuine sign.</p>

<p>But, based on my observations of the ATM, most people wouldn't even bother to glance at the sign.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2018/04/Clerks-I-Assure-you-were-open.jpg" alt="Still from the movie &quot;Clerks&quot;. A convenience store has the shutters closed. A handwritten sign says &quot;I assure you we're open!&quot;" width="1920" height="1080" class="aligncenter size-full wp-image-29507">
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=29503&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2018/04/would-you-trust-this-atm/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
