Adoption. — Ethan Marcotte
Ethan highlights a classic case of the McNamara Fallacy—measuring adoption of design system components.
Ethan highlights a classic case of the McNamara Fallacy—measuring adoption of design system components.
This free event is running online from 3pm to 7pm UK time this Friday. The line-up features Emily Bender, Safiya Noble, Timnit Gebru and more.
Since the publication of On the Dangers of Stochastic Parrots: Can Language Models Be Too Big?🦜 two years ago, many of the harms the paper has warned about and more, have unfortunately occurred. From exploited workers filtering hateful content, to an engineer claiming that chatbots are sentient, the harms are only accelerating.
Join the co-authors of the paper and various guests to reflect on what has happened in the last two years, what the large language model landscape currently look like, and where we are headed vs where we should be headed.
I love print stylesheets but I was today years old when I found out that
The last talk at the last dConstruct was by local clever clogs Anil Seth. It was called Your Brain Hallucinates Your Conscious Reality. It’s well worth a listen.
Anil covers a lot of the same ground in his excellent book, Being You. He describes a model of consciousness that inverts our intuitive understanding.
We tend to think of our day-to-day reality in a fairly mechanical cybernetic manner; we receive inputs through our senses and then make decisions about reality informed by those inputs.
As another former dConstruct speaker, Adam Buxton, puts it in his interview with Anil, it feels like that old Beano cartoon, the Numskulls, with little decision-making homonculi inside our head.
But Anil posits that it works the other way around. We make a best guess of what the current state of reality is, and then we receive inputs from our senses, and then we adjust our model accordingly. There’s still a feedback loop, but cause and effect are flipped. First we predict or guess what’s happening, then we receive information. Rinse and repeat.
The book goes further and applies this to our very sense of self. We make a best guess of our sense of self and then adjust that model constantly based on our experiences.
There’s a natural tendency for us to balk at this proposition because it doesn’t seem rational. The rational model would be to make informed calculations based on available data …like computers do.
Maybe that’s what sets us apart from computers. Computers can make decisions based on data. But we can make guesses.
Enter machine learning and large language models. Now, for the first time, it appears that computers can make guesses.
The guess-making is not at all like what our brains do—large language models require enormous amounts of inputs before they can make a single guess—but still, this should be the breakthrough to be shouted from the rooftops: we’ve taught machines how to guess!
And yet. Almost every breathless press release touting some revitalised service that uses AI talks instead about accuracy. It would be far more honest to tout the really exceptional new feature: imagination.
Using AI, we will guess who should get a mortgage.
Using AI, we will guess who should get hired.
Using AI, we will guess who should get a strict prison sentence.
Reframed like that, it’s easy to see why technologists want to bury the lede.
Alas, this means that large language models are being put to use for exactly the wrong kind of scenarios.
(This, by the way, is also true of immersive “virtual reality” environments. Instead of trying to accurately recreate real-world places like meeting rooms, we should be leaning into the hallucinatory power of a technology that can generate dream-like situations where the pleasure comes from relinquishing control.)
Take search engines. They’re based entirely on trust and accuracy. Introducing a chatbot that confidentally conflates truth and fiction doesn’t bode well for the long-term reputation of that service.
But what if this is an interface problem?
Currently facts and guesses are presented with equal confidence, hence the accurate descriptions of the outputs as bullshit or mansplaining as a service.
What if the more fanciful guesses were marked as such?
As it is, there’s a “temperature” control that can be adjusted when generating these outputs; the more the dial is cranked, the further the outputs will stray from the safest predictions. What if that could be reflected in the output?
I don’t know what that would look like. It could be typographic—some markers to indicate which bits should be taken with pinches of salt. Or it could be through content design—phrases like “Perhaps…”, “Maybe…” or “It’s possible but unlikely that…”
I’m sure you’ve seen the outputs when people request that ChatGPT write their biography. Perfectly accurate statements are generated side-by-side with complete fabrications. This reinforces our scepticism of these tools. But imagine how differently the fabrications would read if they were preceded by some simple caveats.
A little bit of programmed humility could go a long way.
Right now, these chatbots are attempting to appear seamless. If 80% or 90% of their output is accurate, then blustering through the other 10% or 20% should be fine, right? But I think the experience for the end user would be immensely more empowering if these chatbots were designed seamfully. Expose the wires. Show the workings-out.
Mind you, that only works if there is some way to distinguish between fact and fabrication. If there’s no way to tell how much guessing is happening, then that’s a major problem. If you can’t tell me whether something is 50% true or 75% true or 25% true, then the only rational response is to treat the entire output as suspect.
I think there’s a fundamental misunderstanding behind the design of these chatbots that goes all the way back to the Turing test. There’s this idea that the way to make a chatbot believable and trustworthy is to make it appear human, attempting to hide the gears of the machine. But the real way to gain trust is through honesty.
I want a machine to tell me when it’s guessing. That won’t make me trust it less. Quite the opposite.
After all, to guess is human.
We use metaphors all the time. To quote George Lakoff, we live by them.
We use analogies some of the time. They’re particularly useful when we’re wrapping our heads around something new. By comparing something novel to something familiar, we can make a shortcut to comprehension, or at least, categorisation.
But we need a certain amount of vigilance when it comes to analogies. Just because something is like something else doesn’t mean it’s the same.
With that in mind, here are some ways that people are describing generative machine learning tools. Large language models are like…
Manufactured inevitability a.k.a bullshit:
There’s a standard trope that tech evangelists deploy when they talk about the latest fad. It goes something like this:
- Technology XYZ is arriving. It will be incredible for everyone. It is basically inevitable.
- The only thing that can stop it is regulators and/or incumbent industries. If they are so foolish as to stand in its way, then we won’t be rewarded with the glorious future that I am promising.
We can think of this rhetorical move as a Reverse Scooby-Doo. It’s as though Silicon Valley has assumed the role of a Scooby-Doo villain — but decided in this case that he’s actually the hero. (“We would’ve gotten away with it, too, if it wasn’t for those meddling regulators!”)
The critical point is that their faith in the promise of the technology is balanced against a revulsion towards existing institutions. (The future is bright! Unless they make it dim.) If the future doesn’t turn out as predicted, those meddlers are to blame. It builds a safety valve into their model of the future, rendering all predictions unfalsifiable.
Here’s the video of the talk I gave at Monday’s meet-up here in Brighton—it’s a very condensed version of my longer conference talk on declarative design.
Container queries can’t be used in the
sizes attribute for responsive images. Here, Jason breaks down why that is (spoiler: it’s the lookahead pre-parser) and segues into a truly long term solution: a “magical” image format.
If you’ve ever thought it felt weird to put media conditions inside the HTML for responsive images, this will resonate.
A very handy guide to considering privacy at all stages of digital product design:
This guidance is written for technology professionals such as product and UX designers, software engineers, QA testers, and product managers.
I’ve already written about how much I enjoyed hosting Leading Design San Francisco last week.
All the speakers were terrific. Lola’s talk was particularly …um, interesting:
In this talk, Lola will share her adventures in the world of blockchain, the hostility she experienced in her first go-round in 2018, and why she’s chosen to head back to a technology that is going through its largest reputational and social crisis to date.
Wait …I was supposed to stand on stage and introduce a talk that was (at least partly) about blockchain? I have opinions.
As it turned out, Lola warned me that I’d be making an appearance in her talk. She was going to quote that blog post. Before the talk, I asked her how obnoxious I could be about blockchain in her intro. She told me to bring it.
So in the introduction, I deployed all the sarcasm I had in me and said:
Listen, we designers have a tendency to be over-critical of things sometimes. There are all these ideas that we dismiss: phrenology, homeopathy, flat-earthism …blockchain. Haters gonna hate.
I remember somebody asking online a while back, “Why the hate for web3?” And someone I know responded by saying “We hate it because we understand it.” I think there’s a lot of truth to that.
But look, just because blockchains are powering crypto ponzi schemes and N F fucking Ts, it’s worth remembering that it’s also simply a technology. It’s a technological solution in search of a problem.
To be fair, it’s still early days. After all, it’s only been over a decade now.
It’s like the law of instrument says; when all you have is a hammer, everything looks like a nail. Blockchain is like that. Except the hammer is also made of glass.
Anyway, Lola is going to defend the indefensible and talk about blockchain. One thing to keep in mind is this: remember when everyone was talking about “The Cloud”? And then it turned out that you could substitute the phrase “someone else’s server” for “The Cloud?” Well, every time you hear Lola say the word “blockchain”, I’d like you to mentally substitute the phrase “multiple copies of a spreadsheet.”
Please give an open mind and a warm welcome to Lola Oyelayo Pearson!
I got some laughs. I also got lots of gasps and pearl-clutching, as though I were saying something taboo. Welcome to San Francisco.
Lola gave as good as she got. I got a roasting in her talk.
And just to clarify, Lola and I are friends—this was a consensual smackdown.
There was a very serious point to Lola’s talk. Cryptobollocks and other blockchain-powered schemes have historically been very bro-y, and exploitative of non-bro communities. Lola wants to fight that trend.
I get it. But it reminds me a bit of the justifications you hear from people who go to work at Facebook claiming that they can do more good from the inside. Whatever helps you sleep at night.
The crux of Lola’s belief is this: blockchain technology is inevitable, therefore it is uncumbent on us as ethical designers to ensure that the technology is deployed in a way that empowers people instead of exploiting them.
But I take issue with the premise. Blockchain technology is not inevitable. That’s the worst kind of technological determinism. It’s defeatist. It’s a depressing view of “progress” driven not by people, but by technological forces beyond our control.
I refuse to accept that anti-humanist deterministic view.
In any case, for technological determinism to have any validity, there needs to be something to it. At least virtual reality and machine learning are based on some actual technologies. In the case of cryptobollocks, there is no there there. There is nothing except the hype, which is why you’ll see blockchain enthusiasts trying to ride the coattails of trending technologies in a logical fallacy that goes something like this:
Blockchain is bullshit. It isn’t even very clever bullshit. And it certainly isn’t inevitable.
Our smarter, richer betters (in Babel times, the king’s name was Nimrod) often preach the idea of a town square, a marketplace of ideas, a centralized hub of discourse and entertainment—and we listen. But when I go back and read Genesis, I hear God saying: “My children, I designed your brains to scale to 150 stable relationships. Anything beyond that is overclocking. You should all try Mastodon.”
So many gems in this piece by Paul Ford:
The Fediverse apps are all built on a set of rules called the ActivityPub standard, which is a little like HTML had sex with a calendar invite. It’s a content polycule. The questions it evokes are the same as with any polycule: What are the rules? How big can this get? Who will create the chore chart?
This looks like an excellent—and free!—online event centred on privacy and safety. It’s got Eva PenzeyMoog, Robin Berjon and more!
- Make the right thing easy
- Always answer “so what”?
- Close the gap between “something is wrong” to “we fixed it”
A person seeking help in a time of crisis does not care about TypeScript, tree shaking, hot module replacement, A/B tests, burndown charts, NPS, OKRs, KPIs, or other startup jargon. Developer experience does not count for shit if the person using the thing they built can’t actually get what they need.
I quite like this change of terminology when it comes to making fast websites. After all, performance can sound like a process of addition, whereas efficiency can be a process of subtraction.
The term ‘performance’ brings to mind exotic super-cars suitable only for impractical demonstrations (or ‘performances’). ‘Efficiency’ brings to mind an electric car (or even better, a bicycle), making effective use of limited resources.
I had a video call this morning with someone who was in India. The call went great, except for a few moments when the video stalled.
“Sorry about that”, said the person I was talking to. “It’s the monkeys. They like messing with the cable.”
There’s something charming about an intercontinental internet-enabled meeting being slightly disrupted by some fellow primates being unruly.
It also made me stop and think about how amazing it was that we were having the call in the first place. I remembered Arthur C. Clarke’s predictions from 1964:
I’m thinking of the incredible breakthrough which has been possible by developments in communications, particularly the transistor and, above all, the communications satellite.
These things will make possible a world in which we can be in instant contact with each other wherever we may be, where we can contact our friends anywhere on Earth even if we don’t know their actual physical location.
It will be possible in that age—perhaps only 50 years from now—for a man to conduct his business from Tahiti or Bali just as well as he could from London.
The casual sexism of assuming that it would be a “man” conducting business hasn’t aged well. And it’s not the communications satellite that enabled my video call, but old-fashioned undersea cables, many in the same locations as their telegraphic antecedents. But still; not bad, Arthur.
After my call, I caught up on some email. There was a new newsletter from Ariel who’s currently in Antarctica.
Just thinking about the fact that I know someone who’s in Antarctica—who sent me a postcard from Antarctica—gave me another rush of feeling like I was living in the future. As I started to read the contents of the latest newsletter, that feeling became even more specific. Doesn’t this sound exactly like something straight out of a late ’80s/early ’90s cyberpunk novel?
Four of my teammates head off hiking towards the mountains to dig holes in the soil in hopes of finding microscopic animals contained within them. I hang back near the survival bags with the remaining teammate and begin unfolding my drone to get a closer look at the glaciers. After filming the textures of the land and ice from multiple angles for 90 minutes, my batteries are spent, my hands are cold and my stomach is growling. I land the drone, fold it up into my bright yellow Pelican case, and pull out an expired granola bar to keep my hunger pangs at bay.
Forms on the web are an opportunity to make big improvements to the user experience with very little effort. The effort can be as little as sprinkling in a smattering of humble HTML attributes. But the result can be a turbo-charged experience for the user, allowing them to sail through their task.
If you’re using the right
input type value, you’re most of the way there. Browsers on mobile devices can use this value to infer which version of the virtual keyboard is best. So think beyond the plain
text value, and use
number when they’re appropriate.
But you can offer more hints to those browsers. Here are three attributes you can add to
input elements. All three are enumerated values, which means they have a constrained vocabulary. You don’t need to have these vocabularies memorised. You can look them when you need to.
inputmode attribute is the most direct hint you can give about the virtual keyboard you want. Some of the values are redundant if you’re already using an
input type of
But there might be occasions where you want a keyboard optimised for numbers but the input should also accept other characters. In that case you can use an
input type of
text with an
inputmode value of
numeric. This also means you don’t get the spinner controls on desktop browsers that you’d normally get with an
input type of
number. It can be quite useful to supress the spinner controls for numbers that aren’t meant to be incremented.
If you combine
pattern="[0-9]", you’ll get a numeric keypad with no other characters.
The list of possible values for
inputmode attribute provides a hint about which virtual keyboard to show, the
enterkeyhint attribute provides an additional hint about one specific key on that virtual keyboard: the enter key.
For search forms, you’ve got an
enterkeyhint option of
search, and for contact forms, you’ve got
enterkeyhint only changes the labelling of the enter key. On some browsers that label is text. On others it’s an icon. But the attribute by itself doesn’t change the functionality. Even though there are
enterkeyhint values of
next, by default the enter key will still submit the form. So those two values are less useful on long forms where the user is going from field to field, and more suitable for a series of short forms.
The list of possible values is
autocomplete attribute doesn’t have anything to do with the virtual keyboard. Instead it provides a hint to the browser about values that could pre-filled from the user’s browser profile.
Most browsers try to guess when they can they do this, but they don’t always get it right, which can be annoying. If you explicitly provide an
autocomplete hint, browsers can confidently prefill the appropriate value.
Just think about how much time this can save your users!
name value you can use to get full names pre-filled. But if you have form fields for different parts of names—which I wouldn’t recommend—you’ve also got:
You might be tempted to use the
nickname field for usernames, but no need; there’s a separate
As with names, there’s a single
tel value for telephone numbers, but also an array of sub-values if you’ve split telephone numbers up into separate fields:
There’s a whole host of address-related values too:
address-line3, but also
If you have an international audience, addresses can get very messy if you’re trying to split them into separate parts like this.
postal-code (that’s a ZIP code for Americans), but again, if you have an international audience, please don’t make this a required field. Not every country has postal codes.
Speaking of countries, you’ve got a
country-name value, but also a
country value for the country’s ISO code.
autocomplete value is specifically for the details of the current user. If someone is filling in their own address, use
autocomplete. But if someone has specified that, say, a billing address and a shipping address are different, that shipping address might not be the address associated with that person.
On the subject of billing, if your form accepts credit card details, definitely use
autocomplete. The values you’ll probably need are:
cc-namefor the cardholder,
cc-numberfor the credit card number itself,
cc-expfor the expiry date, and
cc-cscfor the security again.
Again, some of these values can be broken down further if you need them:
cc-exp-year for the month and year of the expiry date, for example.
autocomplete attribute is really handy for log-in forms. Definitely use the values of
username as appropriate.
If you’re using two-factor authentication, be sure to add an
autocomplete value of
one-time-code to your form field. That way, the browser can offer to prefill a value from a text message. That saves the user a lot of fiddly copying and pasting. Phil Nash has more details on the Twilio blog.
Not every mobile browser offers this functionality, but that’s okay. This is classic progressive enhancement. Adding an
autocomplete value won’t do any harm to a browser that doesn’t yet understand the value.
autocomplete value of
current-password for password fields in log-in forms. This is especially useful for password managers.
But if a user has logged in and is editing their profile to change their password, use a value of
new-password. This will prevent the browser from pre-filling that field with the existing password.
That goes for sign-up forms too: use
new-password. With this hint, password managers can offer to automatically generate a secure password.
There you have it. Three little HTML attributes that can help users interact with your forms. All you have to do was type a few more characters in your
input elements, and users automatically get a better experience.
This is a classic example of letting the browser do the hard work for you. As Andy puts it, be the browser’s mentor, not its micromanager:
Give the browser some solid rules and hints, then let it make the right decisions for the people that visit it, based on their device, connection quality and capabilities.
A few years ago, I wrote about how much I enjoyed the book Aurora by Kim Stanley Robinson.
Not everyone liked that book. A lot of people were put off by its structure, in which the dream of interstellar colonisation meets the harsh truth of reality and the book follows where that leads. It pours cold water over the very idea of humanity becoming interplanetary.
But our own solar system is doable, right? I mean, Kim Stanley Robinson is the guy who wrote the Mars trilogy and 2312, both of which depict solar system colonisation in just a few centuries.
I wonder if the author might regret the way that some have taken his Mars trilogy as a sort of manual, Torment Nexus style. Kim Stanley Robinson is very much concerned with this planet in this time period, but others use his work to do the opposite.
But the backlash to Mars has begun.
Maciej wrote Why Not Mars:
The goal of this essay is to persuade you that we shouldn’t send human beings to Mars, at least not anytime soon. Landing on Mars with existing technology would be a destructive, wasteful stunt whose only legacy would be to ruin the greatest natural history experiment in the Solar System. It would no more open a new era of spaceflight than a Phoenician sailor crossing the Atlantic in 500 B.C. would have opened up the New World. And it wouldn’t even be that much fun.
Manu Saadia is writing a book about humanity in space, and he has a corresponding newsletter called Against Mars: Space Colonization and its Discontents:
What if space colonization was merely science-fiction, a narrative, or rather a meta-narrative, a myth, an ideology like any other? And therefore, how and why did it catch on? What is so special and so urgent about space colonization that countless scientists, engineers, government officials, billionaire oligarchs and indeed, entire nations, have committed work, ingenuity and treasure to make it a reality.
What if, and hear me out, space colonization was all bullshit?
I mean that quite literally. No hyperbole. Once you peer under the hood, or the nose, of the rocket ship, you encounter a seemingly inexhaustible supply of ghoulish garbage.
Two years ago, Shannon Stirone went into the details of why Mars Is a Hellhole
The central thing about Mars is that it is not Earth, not even close. In fact, the only things our planet and Mars really have in common is that both are rocky planets with some water ice and both have robots (and Mars doesn’t even have that many).
Perhaps the most damning indictment of the case for Mars colonisation is that its most ardent advocate turns out to be an idiotic small-minded eugenicist who can’t even run a social media company, much less a crewed expedition to another planet.
But let’s be clear: we’re talking here about the proposition of sending humans to Mars—ugly bags of mostly water that probably wouldn’t survive. Robots and other uncrewed missions in our solar system …more of that, please!
I gave blood yesterday. It was my sixteenth donation.
Yes, that’s a humblebrag. I feel like the gamification of blood donation is entirely reasonable. Levelling up in blood donation feels like the opposite of frequent flyer points. Instead of a growing sense of shame at how your accumulated activity is destroying the planet, you get increasing affirmation that you’re helping others.
Besides, I don’t have Strava, or Peleton, or rings to close, or whatever. I don’t even do Wordle. So this is the only “streak” I can legitimately boast about.
The more I give blood, the more I enjoy it.
I know that sounds weird. Surely having a needle shoved in your arm isn’t meant to be enjoyable?
It’s true that the first or second time you do it, it can feel intimidating, maybe even a little scary. I’m lucky that I don’t have much of an aversion to needles—much respect to those who do, but donate anyway.
But once you’ve done it a few times, it becomes routine. Actually, it’s more than routine. It’s like a ritual.
Not to get all spiritual here when we’re talking about an entirely biological process, but there is something special going on…
You join together with other members of your community. Strangers. People from all walks of life, all of them gathered in one place to do the same thing: sacrifice a small portion of themselves for the greater good.
It’s like a more egalitarian version of most religious narratives. Instead of a single saviour making a grand sacrifice, you get many individuals partaking in their own mini crucifixations. A little discomfort and that’s it. Multiply that by the number of people gathered together and you’ve got a magnificent network effect. Less dramatic than the hero’s journey, but far more effective.
Usually in our society, if you want to do good, it’s tied to money. You inherit wealth or accumulate it through work and luck, and then you can choose to do good by redistributing some of that moolah. The more you’ve got, the more you can choose to give away. So the amount of potential good that can be done comes down to the whims of the people who have the most money.
Giving blood doesn’t work like that. We’ve all got the same amount of blood.
The memento mori that are scattered through the history of human culture are there to remind us that death is the great leveller. Prince or pauper, we all meet the same end. That also applies to our blood. Prince or pauper, we’re all equal when it comes to blood donation.
That’s one of the reasons I like returning to give blood every few months. It restores my faith in humanity. I look around the room and see all these people that I don’t know, but we’re all there to complete our individual rituals. We all contribute the same amount. It’s a very personal choice, but there’s a communal feeling that comes from being with all these strangers who have made the same choice.
Besides, it’s just a nice opportunity to step away from the day-to-day. Bring a good book to read during the waiting periods before and after donation. During the donation itself, you’ve got this time to think and reflect. It’s quite meditative, opening and closing your hand to help the flow. Almost trance-like.
And then you get free biscuits.
That isn’t quite the end though. A few days later you get a text message telling you where your blood will be used. I love that part. It feels like closing the loop.
It’s funny that we often use the language of blood to describe supply chains: arterial networks carrying goods in and out of hubs; the pumping systems that keep society alive. When that text message arrives, it’s like a little bit of you is part of an infrastructure for helping others.
You can find a donation opportunity near you on the blood.co.uk website.