Archive: March, 2023
Sunday, March 26th, 2023
Reading Circe by Madeline Miller.
Saturday, March 25th, 2023
The machines won’t save your design system — Hey Jovo Design
Every day, a new marketing email, Medium post, or VC who will leave Twitter when they’re cold in a body bag tells us that machine learning (ML, which they call AI because it sounds more expensive) is going to change the way we work. Doesn’t really matter what your job is. ML is going to read, write, code, and paint for us.
Naturally, the excitement around ML has found its way into the design systems community. There’s an apparent natural synergy between ML and design systems. Design systems practitioners are tantalized by the promise of even greater efficiency and scale. We wish a machine would write our docs for us.
We are all, every single one of us, huge fucking nerds.
Friday, March 24th, 2023
Hello, internet | Sam O’Neill
I have been reminded time and time again of the utility of writing. How it is a way to turn messy thoughts into coherent ideas, and how – as we all know – practice makes perfect. So I’m going to give it a go.
Welcome to the indie web, Sam!
Replying to @AmeliaBR@front-end.social on mastodon.social
I’m talking about phrases, rather than names: single-page apps; large language models; client-side rendering; non-fungible tokens.
Just regular adjectives and nouns. No title case required, or deserved.
Thursday, March 23rd, 2023
Eight years ago today I published the first of 100 posts where I’d write exactly 100 words every day:
It was fun!
I should do it again sometime.
Techbros seem to love spelling their half-baked creations with capital letters to make them seem important.
It’s a small act of resistance, but I write them as regular words. The added readability is a nice bonus.
Picture someone tediously going through a spreadsheet that someone else has filled in by hand and finding yet another error.
“I wish to God these calculations had been executed by steam!” they cry.
The year was 1821 and technically the spreadsheet was a book of logarithmic tables. The frustrated cry came from Charles Babbage, who channeled his frustration into a scheme to create the world’s first computer.
His difference engine didn’t work out. Neither did his analytical engine. He’d spend his later years taking his frustrations out on street musicians, which—as a former busker myself—earns him a hairy eyeball from me.
But we’ve all been there, right? Some tedious task that feels soul-destroying in its monotony. Surely this is exactly what machines should be doing?
I have a hunch that this is where machine learning and large language models might turn out to be most useful. Not in creating breathtaking works of creativity, but in menial tasks that nobody enjoys.
Someone was telling me earlier today about how they took a bunch of haphazard notes in a client meeting. When the meeting was done, they needed to organise those notes into a coherent summary. Boring! But ChatGPT handled it just fine.
I don’t think that use-case is going to appear on the cover of Wired magazine anytime soon but it might be a truer glimpse of the future than any of the breathless claims being eagerly bandied about in Silicon Valley.
You know the way we no longer remember phone numbers, because, well, why would we now that we have machines to remember them for us? I’d be quite happy if machines did that for the annoying little repetitive tasks that nobody enjoys.
I’ll give you an example based on my own experience.
Regular expressions are my kryptonite. I’m rubbish at them. Any time I have to figure one out, the knowledge seeps out of my brain before long. I think that’s because I kind of resent having to internalise that knowledge. It doesn’t feel like something a human should have to know. “I wish to God these regular expressions had been calculated by steam!”
Now I can get a chatbot with a large language model to write the regular expression for me. I still need to describe what I want, so I need to write the instructions clearly. But all the gobbledygook that I’m writing for a machine now gets written by a machine. That seems fair.
Mind you, I wouldn’t blindly trust the output. I’d take that regular expression and run it through a chatbot, maybe a different chatbot running on a different large language model. “Explain what this regular expression does,” would be my prompt. If my input into the first chatbot matches the output of the second, I’d have some confidence in using the regular expression.
A friend of mine told me about using a large language model to help write SQL statements. He described his database structure to the chatbot, and then described what he wanted to select.
Again, I wouldn’t use that output without checking it first. But again, I might use another chatbot to do that checking. “Explain what this SQL statement does.”
Playing chatbots off against each other like this is kinda how machine learning works under the hood: generative adverserial networks.
Of course, the task of having to validate the output of a chatbot by checking it with another chatbot could get quite tedious. “I wish to God these large language model outputs had been validated by steam!”
Sounds like a job for machines.
Stuart has written this fantastic concise practical guide to privacy for developers and designers. A must-read!
Why ChatGPT Won’t Replace Coders Just Yet
I’ve been using Copilot for over a year now, and this is more or less how I use it: To help me quickly blast through boilerplate code so I can more quickly get to the tricky bits.
There’s a more subtle problem with ChatGPT’s code generation, which is that it suffers from ChatGPT’s general “bullshit” problem.
Home | The Component Gallery
Here’s an aggregator of components from multiple design systems.
Smoke screen | A Working Library
The story that “artificial intelligence” tells is a smoke screen. But smoke offers only temporary cover. It fades if it isn’t replenished.
Wednesday, March 22nd, 2023
In Search of Lost Time, by Tom Vanderbilt
Temporal standards bodies.
You know how when you’re on hold to any customer service line you hear a message that thanks you for calling and claims your call is important to them. The message always includes a disclaimer about calls possibly being recorded “for training purposes.”
Nobody expects that any training is ever actually going to happen—surely we would see some improvement if that kind of iterative feedback loop were actually in place. But we most certainly want to know that a call might be recorded. Recording a call without disclosure would be unethical and illegal.
If you’re having a text-based (or maybe even voice-based) interaction with a customer service representative that doesn’t disclose its output is the result of large language models, that too would be unethical. But, at the present moment in time, it would be perfectly legal.
That needs to change.
I suspect the necessary legislation will pass in Europe first. We’ll see if the USA follows.
In a way, this goes back to my obsession with seamful design. With something as inherently varied as the output of large language models, it’s vital that people have some way of evaluating what they’re told. I believe we should be able to see as much of the plumbing as possible.
The bare minimum amount of transparency is revealing that a machine is in the loop.
This shouldn’t be a controversial take. But I guarantee we’ll see resistance from tech companies trying to sell their “AI” tools as seamless, indistinguishable drop-in replacements for human workers.
Tuesday, March 21st, 2023
Web fingerprinting is worse than I thought - Bitestring’s Blog
How browser fingerprinting works and what you can do about it (if you use Firefox).
When is :focus-visible visible? | bitsofcode
The perfect link - The A11Y Collective
How do we write, design, and code a link that works for everyone on every device? Let’s dive into the world of creating the perfect link, without making a pig’s breakfast of it.
Preventing too-short final lines of blocks | Clagnut by Richard Rutter
Check out the demo that Rich has put together to go with Amelia’s proposed syntax.
Monday, March 20th, 2023
Adoption. — Ethan Marcotte
Ethan highlights a classic case of the McNamara Fallacy—measuring adoption of design system components.
The AI hype bubble is the new crypto hype bubble
A handy round-up of recent wrtings on artificial insemination.
Pixel Pioneers Bristol 2023 Speaker Spotlight: Jeremy Keith
Oliver asked me some questions about my upcoming talk at Pixel Pioneers in Bristol in June. Here are my answers.
Sunday, March 19th, 2023
50 Years Later, We’re Still Living in the Xerox Alto’s World - IEEE Spectrum
A profile of the Xerox Alto and the people behind it.
Design notes on the 2023 Wikipedia redesign
Artificial Intelligence sounds much more impressive than Artificial Guessing in a slide deck.
Robin picks up on my framing.
Instead of brainstorming, discussing, iterating, closely inspecting a product to understand it and figure out what to show on a page, well, we can just let the machines figure it out for us! This big guessing machine can do our homework and we can all pack up and go to the beach.
ongoing by Tim Bray · The LLM Problem
It doesn’t bother me much that bleeding-edge ML technology sometimes gets things wrong. It bothers me a lot when it gives no warnings, cites no sources, and provides no confidence interval.
Yes! Like I said:
Expose the wires. Show the workings-out.
Saturday, March 18th, 2023
Jeepers Frigging Cripes Crypto and NFTs are so stupid and dumb and bad and I can’t even. I’m out. Goodbye. Burn it down please. - Chris Coyier
Literally every experience I have in this world is gross at best and criminally evil at worst. Who it benefits that actually needs the benfefit is vanishingly few.
Here are some rhetorical questions from Chris:
How many years into this are we with no practical use cases for the world? How many resources have to be burned before this is seen?
Friday, March 17th, 2023
Replying to @SimonJohnGreen on mastodon.social
But no sessions.
(Which is a shame—it’s right ’round the corner from me)
Here’s how the St. Patrick’s Day sessions are shaping up in Brighton:
- 2:30-4:30 The Fiddler’s Elbow
- 4-6 The Bugle
- 5-7 The Lord Nelson
- 6-8 The Dover Castle
- 8-10 The Jolly Brewer
- 10-? ???
Lá Fhéile Pádraig sona daoibh go léir!
I’m off to play a rake of tunes…
I presume that “ChatGPT” isn’t supposed to be said as one word—“chatgipit”—but rather the capital letters should be spelled out.
So it’s pronounced “See Hat Jee Pee Tee.”
Thursday, March 16th, 2023
Dumb Password Rules
A hall of shame for ludicrously convoluted password rules that actually reduce security.
Modern Font Stacks
This is handy—a collection of font stacks using system fonts. You can see which ones are currently installed on your machine too.
The most performant web font is no web font.
Reading The Hacker Crackdown: Law and Disorder on the Electronic Frontier by Bruce Sterling.
The stupidity of AI | The Guardian
A great piece by James, adapted from the new edition of his book New Dark Age.
The lesson of the current wave of “artificial” “intelligence”, I feel, is that intelligence is a poor thing when it is imagined by corporations. If your view of the world is one in which profit maximisation is the king of virtues, and all things shall be held to the standard of shareholder value, then of course your artistic, imaginative, aesthetic and emotional expressions will be woefully impoverished. We deserve better from the tools we use, the media we consume and the communities we live within, and we will only get what we deserve when we are capable of participating in them fully. And don’t be intimidated by them either – they’re really not that complicated. As the science-fiction legend Ursula K Le Guin wrote: “Technology is what we can learn to do.”
Wednesday, March 15th, 2023
Another three speakers for UX London 2023
I know I’m being tease, doling out these UX London speaker announcements in batches rather than one big reveal. Indulge me in my suspense-ratcheting behaviour.
Today I’d like to unveil three speakers whose surnames start with the letter H…
- Stephen Hay, Creative Director at Rabobank,
- Asia Hoe, Senior Product Designer, and
- Amy Hupe, Design Systems consultant at Frankly Design.
Just look at how that line-up is coming together! There’ll be just one more announcement and then the roster will be complete.
But don’t wait for that. Grab your ticket now and I’ll see you in London on June 22nd and 23rd!
Stochastic Parrots Day Tickets, Fri, Mar 17, 2023 at 8:00 AM | Eventbrite
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.
This is the flyer that Tim Berners-Lee and Robert Cailliau distributed at the Hypertext 91 Conference—the one where their submission was infamously rejected.
The WWW project merges the techniques of information rerieval and hypertext to make an easy but powerful global information system.
The project is based on the philosophy that much academic information should be freely available to anyone. lt aims to allow information sharing within internationally dispersed teams, and the dissemination of information by support groups.
How slimmed-down websites can cut their carbon emissions - BBC News
Interesting to see an article on web performance on the BBC. Perhaps we should be emphasising green over speed?
print-color-adjust - CSS: Cascading Style Sheets | MDN
I love print stylesheets but I was today years old when I found out that
Tuesday, March 14th, 2023
My brother is competing in the Barkley Marathons. Again.
Last time he broke his collarbone on the second loop. #bm100
Craft vs Industry: Separating Concerns by Thomas Michael Semmler: CSS Developer, Designer & Developer from Vienna, Austria
Call me Cassandra:
The way that industry incorporates design systems is basically a misappropriation, or abuse at worst. It is not just me who is seeing the problem with ongoing industrialization in design. Even Brad Frost, the inventor of atomic design, is expressing similar concerns. In the words of Jeremy Keith:
[…] Design systems take their place in a long history of dehumanising approaches to manufacturing like Taylorism. The priorities of “scientific management” are the same as those of design systems—increasing efficiency and enforcing consistency.
So no. It is not just you. We all feel it. This quote is from 2020, by the way. What was then a prediction has since become a reality.
This grim assessment is well worth a read. It rings very true.
What could have become Design Systemics, in which we applied systems theory, cybernetics, and constructivism to the process and practice of design, is now instead being reduced to component libraries. As a designer, I find this utter nonsense. Everyone who has even just witnessed a design process in action knows that the deliverable is merely a documenting artifact of the process and does not constitute it at all. But for companies, the “output” is all that matters, because it can be measured; it appeals to the industrialized process because it scales. Once a component is designed, it can be reused, configured, and composed to produce “free” iterations without having to consult a designer. The cost was reduced while the output was maximized. Goal achieved!
The climate cost of the AI revolution • Wim Vanderbauwhede
As a society we need to treat AI resources as finite and precious, to be utilised only when necessary, and as effectively as possible. We need frugal AI.
Why aren’t logical properties taking over everything? - Chris Coyier
I think it’s mostly inertia.
I’ve spent a lot of time thinking, talking and writing about evaluating technology and what Robin describes here is definitely a bad “code smell” that should ring alarm bells:
What’s really concerning is when everyone is consumed with the technology-first and the problem-last.
Unless you’re working in an R’n’D lab, start with user needs.
I’m certain now that if you want to build something great you have to see through the tech. And that’s really hard to do when this cool new thing is all that anyone is talking about. But that’s why this one specific thing is the hallmark of a great organization; they aren’t distracted by short-lived trends and instead focus on the problem-first. Relentlessly, through the noise.
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.
So, if progressive enhancement is no more expensive to create, future-proof, provides us with technical credit, and ensures that our users always receive the best possible experience under any conditions, why has it fallen by the wayside?
Because before, when you clicked on a link, the browser would go white for a moment.
Sunday, March 12th, 2023
Happy birthday to Information Management: A Proposal by Tim Berners-Lee
Saturday, March 11th, 2023
Friday, March 10th, 2023
Going to A Coruña. brb
Thursday, March 9th, 2023
Some simple ways to make content look good - Set Studio
This is a terrific walkthrough from Andy showing how smart fundamentals in your CSS can give you a beautiful readable document without much work.
Social networks like Instagram, Facebook and Twitter that present a so-called algorithmic feed are really providing little more than continuous partial shadowbanning.
Wednesday, March 8th, 2023
Cole Peters — An Introduction to Constraint Based Design Systems
Design systems as codified constraints.
An end to typographic widows on the web | Clagnut by Richard Rutter
Rich explains what
text-wrap:balance does …and what it doesn’t.
Monday, March 6th, 2023
The past is a foreign country
I tried watching a classic Western this weekend, How The West Was Won. I did not make it far. Let’s just say that in the first few minutes, the Spencer Tracy voiceover that accompanies the sweeping vistas sets out an attitude toward the indigenous population that would not fly today.
It’s one thing to be repulsed by a film from another era, but it’s even more uncomfortable to revisit the films from your own teenage years.
Tim Carmody has written about the real hero of Top Gun:
Iceman’s concern for Maverick and the safety of his fighter unit is totally understandable. He tries, however awkwardly, to discuss Goose’s death with Maverick. There’s no discussion of blame. And when they’re assigned to fly into combat together, Iceman briefly and discreetly raises the issue of Maverick’s fitness to fly with his superior officer and withdraws his concern once a decision is made.
I know someone who didn’t watch Ferris Bueller’s Day Off until they were well into adulthood. Their sympathies lay squarely with Dean Rooney.
And I think we can all agree in hindsight that Walter Peck was completely correct in his assessment of the dangers in Ghostbusters.
Oh, and The Karate Kid was the real bully.
This week, George wrote I’ve fallen out of love with Indiana Jones. Indy’s attitude of “it belongs in a museum” is the same worldview that got the Parthenon Marbles into the British Museum (instead of, y’know, the Parthenon where they belong).
Adrian Hon invites us to imagine what it would be like if the tables were turned. He wrote a short piece of speculative fiction called The Taking of Stonehenge:
We selected these archaeological sites based on their importance to our collective understanding of human and galactic history, and their immediate risk of irreparable harm from pollution, climate change, neglect, and looting. We are sympathetic to claims that preserving these sites in their “original” context is important, but our duty of care outweighs such emotional considerations.
I doubled-down on RSS – Eric Bailey
In which Eric says:
Jeremy Keith, you magnificent son of a bitch.
I’ll take it.
Appropriately enough, I read this post in my feed reader.
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…
The Web Needs a Native .visually-hidden
I agree with the reasoning here—a new
display value would be ideal.
Sunday, March 5th, 2023
Light Years Ahead | The 1969 Apollo Guidance Computer - YouTube
This video was in my “Watch Later” queue for ages but I finally got ‘round to watching it this weekend. It’s ace! Great content, great narrative, great delivery—would’ve made a good dConstruct talk.
Saturday, March 4th, 2023
Those meddling kids! The Reverse Scooby-Doo theory of tech innovation comes with the excuses baked in | Nieman Journalism Lab
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.
Thursday, March 2nd, 2023
Remote Synthesis | The Price Developers Pay for Loving Their Tools Too Much
- Don’t wrap too much of your identity in a tool.
- Every tool will eventually fade.
- Flexibility is a valuable skill
- Changing tools does not mean starting over.
I agree with pretty much every word of this article.
Redefining Developer Experience — Begin Blog
Perhaps most problematic of all is the effect that contemporary developer experience has on educational programs (be they traditional classes, bootcamps, workshops, or anything in between). Such a rapidly expanding and ever changing technological ecosystem necessarily means that curricula struggle to keep up, and that the fundamentals of web development (e.g. HTML, CSS, HTTP, browser APIs…) are often glossed over in favor of getting students into the technologies more likely to land them jobs (like React and its many pals). This leads to an outpouring of early career developers who may speak confidently about things like React hooks or Redux state reducers, but who also lack any concept about the nature of HTML semantics or the most basic accessibility considerations. To be clear, I’m not throwing shade at those developers — they have been failed by an industry obsessed with the new and shiny at the expense of foundational practices and end user experiences.
And so, I ask: what exactly are we buying when we are sold ‘developer experience’ today? Who is benefiting from it? And if it is indeed something many of us aren’t too excited about (to put it kindly), how can we change it for the better?
I agree with pretty much every word of this article.
We were told writing apps with an HTML-first, SSR-first, progressively enhanced mindset, using our preferred language/tech stack of choice, was outdated and bad for users.
That was a lie.
That also was a lie.
I agree with pretty much every word of this article.
Jeremy Keith – Declarative Design – SOTR - YouTube
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.
Wednesday, March 1st, 2023
Out with the Clearleft crew in a pub having a retro games night…
Them: “Want to play Tekken? Or is it Tekken 2?”
Me: “As long it stars Liam Neeson, that’s all that matters!”
On Container Queries, Responsive Images, and JPEG-XL – Cloud Four
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.