Archive: January, 2023

71

sparkline
                    5th                     10th                     15th                     20th                     25th                     30th     
12am
4am
8am                              
12pm                      
4pm                            
8pm                

map

Tuesday, January 31st, 2023

The preserved body of an enormous squid in a long transparent tank. Two people standing to one side give some sense of the scale. A collection of specimens, mostly fish and one tortoise, with labels from Darwin’s voyage on the Beagle. Rows and rows of transparent containers filled with creatures preserved in liquid in an underground industrial room.

I met Archie the giant squid, Darwin’s tortoise, and many, many other fine specimens thanks to the lovely folks at the Natural History Museum! 🦑 🐢

Replying to @simon@simonwillison.net on mastodon.social

Maybe the proposal for a CSS :toggle pseudo-class could solve this?

https://tabatkins.github.io/css-toggle/

Sunday, January 29th, 2023

Checked in at The Bugle Inn. Sunday session 🎶🎻 map

Checked in at The Bugle Inn. Sunday session 🎶🎻

Reading The Rosewater Insurrection by Tade Thompson.

Buy this book

Chronophoto - The Photographical History Game

This is a fun game—with the same kind of appeal as that Wiki History Game I linked to—where you have to locate photographs in time.

Saturday, January 28th, 2023

Container Queries and Typography

I feel like we need a name for this era, when CSS started getting real good.

I think this is what I’ve been calling declarative design.

Friday, January 27th, 2023

Replying to @jensimmons@front-end.social on mastodon.social

On my phone’s home screen (an iPhone):

One screen deep:

Thursday, January 26th, 2023

Checked in at The Lord Nelson Inn. Thursday night session 🎶🎻 — with Jessica map

Checked in at The Lord Nelson Inn. Thursday night session 🎶🎻 — with Jessica

Wednesday, January 25th, 2023

Checked in at Jolly Brewer. Fiddletastic session — with Jessica map

Checked in at Jolly Brewer. Fiddletastic session — with Jessica

Tuesday, January 24th, 2023

Inside the Globus INK: a mechanical navigation computer for Soviet spaceflight

The positively steampunk piece of hardware used for tracking Alexei Leonov’s Apollo-Soyuz mission.

I love that a photo I took 21 years ago is still available at its original URL on the Mirror Project: https://www.mirrorproject.com/mirror/?id=3997

(That’s not a thumbnail; that’s the photo—pixels were expensive back in the day.)

In between

I was chatting with my new colleague Alex yesterday about a link she had shared in Slack. It was the Nielsen Norman Group’s annual State of Mobile User Experience report.

There’s nothing too surprising in there, other than the mention of Apple’s app clips and Google’s instant apps.

Remember those?

Me neither.

Perhaps I lead a sheltered existence, but as an iPhone user, I don’t think I’ve come across a single app clip in the wild.

I remember when they were announced. I was quite worried about them.

See, the one thing that the web can (theoretically) offer that native can’t is instant access to a resource. Go to this URL—that’s it. Whereas for a native app, the flow is: go to this app store, find the app, download the app.

(I say that the benefit is theoretical because the website found at the URL should download quickly—the reality is that the bloat of “modern” web development imperils that advantage.)

App clips—and instant apps—looked like a way to route around the convoluted install process of native apps. That’s why I was nervous when they were announced. They sounded like a threat to the web.

In reality, the potential was never fulfilled (if my own experience is anything to go by). I wonder why people didn’t jump on app clips and instant apps?

Perhaps it’s because what they promise isn’t desirable from a business perspective: “here’s a way for users to accomplish their tasks without downloading your app.” Even though app clips can in theory be a stepping stone to installing the full app, from a user’s perspective, their appeal is the exact opposite.

Or maybe they’re just too confusing to understand. I think there’s an another technology that suffers from the same problem: progressive web apps.

Hear me out. Progressive web apps are—if done well—absolutely amazing. You get all of the benefits of native apps in terms of UX—they even work offline!—but you retain the web’s frictionless access model: go to a URL; that’s it.

So what are they? Are they websites? Yes, sorta. Are they apps? Yes, sorta.

That’s confusing, right? I can see how app clips and instant apps sound equally confusing: “you can use them straight away, like going to a web page, but they’re not web pages; they’re little bits of apps.”

I’m mostly glad that app clips never took off. But I’m sad that progressive web apps haven’t taken off more. I suspect that their fates are intertwined. Neither suffer from technical limitations. The problem they both face is inertia:

The technologies are the easy bit. Getting people to re-evaluate their opinions about technologies? That’s the hard part.

True of progressive web apps. Equally true of app clips.

But when I was chatting to Alex, she made me look at app clips in a different way. She described a situation where somebody might need to interact with some kind of NFC beacon from their phone. Web NFC isn’t supported in many browsers yet, so you can’t rely on that. But you don’t want to make people download a native app just to have a quick interaction. In theory, an app clip—or instant app—could do the job.

In that situation, app clips aren’t a danger to the web—they’re polyfills for hardware APIs that the web doesn’t yet support!

I love having my perspective shifted like that.

The specific situations that Alex and I were discussing were in the context of museums. Musuems offer such interesting opportunities for the physical and the digital to intersect.

Remember the pen from Cooper Hewitt? Aaron spoke about it at dConstruct 2014—a terrific presentation that’s well worth revisiting and absorbing.

The other dConstruct talk that’s very relevant to this liminal space between the web and native apps is the 2012 talk from Scott Jenson. I always thought the physical web initiative had a lot of promise, but it may have been ahead of its time.

I loved the thinking behind the physical web beacons. They were deliberately dumb, much like the internet itself. All they did was broadcast a URL. That’s it. All the smarts were to be found at the URL itself. That meant a service could get smarter over time. It’s a lot easier to update a website than swap out a piece of hardware.

But any kind of technology that uses Bluetooth, NFC, or other wireless technology has to get over the discovery problem. They’re invisible technologies, so by default, people don’t know they’re even there. But if you make them too discoverable— intrusively announcing themselves like one of the commercials in Minority Report—then they’re indistinguishable from spam. There’s a sweet spot of discoverability right in the middle that’s hard to get right.

Over the past couple of years—accelerated by the physical distancing necessitated by The Situation—QR codes stepped up to the plate.

They still suffer from some discoverability issues. They’re not human-readable, so you can’t be entirely sure that the URL you’re going to go to isn’t going to be a Rick Astley video. But they are visible, which gives them an advantage over hidden wireless technologies.

They’re cheaper too. Printing a QR code sticker costs less than getting a plastic beacon shipped from China.

QR codes turned out to be just good enough to bridge the gap between the physical and digital for those one-off interactions like dining outdoors during a pandemic:

I can see why they chose the web over a native app. Online ordering is the only way to place your order at this place. Telling people “You have to go to this website” …that seems reasonable. But telling people “You have to download this app” …that’s too much friction.

Ironically, the nail in the coffin for app clips and instant apps might’ve been hammered in by Apple and Google when they built QR-code recognition into their camera software.

Efficiency over performance

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.

Replying to @jimniels on mastodon.social

Then there’s the original port number for the Web World Web: 2784

There’s a story behind it… https://adactio.com/journal/16531

Software and its Discontents, Part 2: An Explosion of Complexity | Kellan Elliott-McCrea: Blog

Talking primarily to engineering leaders, but also CEOs, VCs, ICs, and other practitioners, the most common response to the question of “has something substantially changed?” is that software, counter intuitively, has gotten harder to build. This is counter intuitive because the tools are orders of magnitude better, the amount of work you can cheaply outsource is nearly miraculous, computers are so damn fast and cheap these days, the quality of resources, much of it free, is off the charts, and the talent pool has exploded, and shows every sign of being smarter and better educated than ever. But software has gotten harder to build in one very particular and important way: it’s gotten more complex.

Kellan nails it:

We’ve developed an aesthetics of complexity: the sense that a good system is a complex one, that you should prefer a SPA over a web page, a distributed system over a simple one, a service over a config file, the idea if you aren’t on the latest technology you’re wasting your time, and potentially damaging your career.

Monday, January 23rd, 2023

One morning in the future

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.

Replying to @KevinMarks@xoxo.zone on mastodon.social

I think you’re right—I’ll update it.

Sunday, January 22nd, 2023

Checked in at Tørstigbar. Drinking Weird Weather by Mikkeller — with Jessica map

Checked in at Tørstigbar. Drinking Weird Weather by Mikkeller — with Jessica

Accessibility strategy – GOV.UK Design System

The primary goals of this strategy are to inform decision-making and enhance the success of accessibility-related activities within the GOV.UK Design System team.

Interestingly, accessibility concerns are put into two categories: theoretical and evidenced (with the evidenced concerns being prioritised):

  1. Theoretical: A question or statement regarding the accessibility of an implementation within the Design System without evidence of real-world impact.
  2. Evidenced: Sharing new research, data or evidence showing that an implementation within the Design System could cause barriers for disabled people.

clamp() Calculator · Chris Burnell

Like a little mini Utopia:

Handy little tool for calculating viewport-based clamped values.

Culture and style

Ever get the urge to style a good document?

No? Just me, then.

Well, the urge came over me recently so I started styling this single-page site:

A Few Notes On The Culture by Iain M Banks

I’ve followed this document across multiple locations over the years. It started life as a newsgroup post on rec.arts.sf.written in 1994. Ken McLeod published it there on Iain M Banks’s behalf.

The post complements the epic series of space opera books that Iain M Banks set in the anarcho-utopian society of The Culture. It’s a fascinating piece of world building, as well as an insight into the author’s mind.

I first became aware of it many few years later, after a copy had been posted to the web. That URL died, but Adrian Hon kept a copy on his site. Lots of copies keep stuff safe, so after contemplating linkrot, I made a copy on this site too.

But I recently thought that maybe it deserved a bit of art direction, so I rolled up my sleeves and started messing around, designing in the browser and following happy little accidents.

The finished result is still fairly sparse. It’s still entirely text, except for a background image that shows up if your screen is wide enough. That image of a planet originally started as an infra-red snapshot of Jupiter by the James Webb Space Telescope that I worked over until it was unrecognisable.

The text itself is the main focus of the design though. I knew I wanted to play around with a variable font. Mona Sans from Github was one of the first ones I tried and I found it instantly suitable. I had a lot of fun playing with different weights and widths.

After a bit of messing around, I realised that the heading styles were reminding me of some later reissues of The Culture novels, so I leant into that, deliberately styling the byline to resemble the treatment of the author’s name on those book covers.

There isn’t all that much CSS. I’ve embedded it in the head of the HTML rather than linking to a separate style sheet, so feel free to view source and poke around in there. You’ll see that I’m making liberal use of custom properties, the clamp function, and logical properties.

Originally I had a light mode and dark mode but I found that the dark mode was much more effective so I ditched the lighter option.

I did make sure to include some judicious styles for print, so if you fancy reading on paper, it should print out nicely.

Oh, and of course it’s a progressive web app that works offline.

I didn’t want to mess with the original document other than making some typographic tweaks to punctuation, but I wanted to break up the single wall of text. I wasn’t about to start using pull quotes on the web so in the end I decided to introduce some headings that weren’t in the original document:

  1. Government
  2. Economics
  3. Technology
  4. Philosophy
  5. Lifestyle
  6. Travel
  7. Habitat
  8. Legal System
  9. Politics
  10. Identity
  11. Nomenclature
  12. Cosmology

If your browser viewport is tall enough, the heading for the current section you’re reading will remain sticky as you scroll. No JavaScript required.

I’m pretty pleased with how this little project turned out. It was certainly fun to experiment with fluid type and a nice variable font.

I can add this to my little collection of single-page websites I’ve whittled over the years:

Friday, January 20th, 2023

Hand-thrown frontends - Robb Owen

I’ve personally never really seen frontend as an assembly job. Lego is admittedly awesome, but for me the mental model of assembling Lego bricks in the required order until a Jira ticket can be marked as “done” feels too linear and too rigid for how I like to work. And that’s not to mention the pain that comes when you have to partially dismantle your bricks to correct some earlier misstep.

I like the pottery analogy.

Replying to @scottjenson@social.coop on mastodon.social

I challenge you to rework the genuinely good Kettle Companion:

https://russelldavies.typepad.com/planning/2022/11/the-internet-of-good-things.html

(the obvious fixes are for their terrible website)

Thursday, January 19th, 2023

Replying to @damian@social.damianwajer.com on mastodon.social

Oh yes, I linked to that a while back:

https://adactio.com/links/18512

Thanks for the reminder!

Three attributes for better web forms

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.

This is particularly true on mobile devices where people have to fill in forms using a virtual keyboard. Any improvement you can make to their flow is worth investigating. But don’t worry: you don’t need to add a complex JavaScript library or write convoluted code. Well-written HTML will get you very far.

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 search, email, url, tel, or 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

The 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 search, email, tel, or url.

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 inputmode="numeric" with pattern="[0-9]", you’ll get a numeric keypad with no other characters.

The list of possible values for inputmode is text, numeric, decimal, search, email, tel, and url.

enterkeyhint

Whereas the 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 send.

The 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 previous and 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 enter, done, next, previous, go, search, and send.

autocomplete

The 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!

There’s a 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:

  • given-name,
  • additional-name,
  • family-name,
  • nickname,
  • honorific-prefix, and
  • honorific-suffix.

You might be tempted to use the nickname field for usernames, but no need; there’s a separate username value.

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:

  • tel-country-code,
  • tel-national,
  • tel-area-code,
  • tel-local, and
  • tel-extension.

There’s a whole host of address-related values too:

  • street-address,
  • address-line1,
  • address-line2, and
  • address-line3, but also
  • address-level1,
  • address-level2,
  • address-level3, and
  • address-level4.

If you have an international audience, addresses can get very messy if you’re trying to split them into separate parts like this.

There’s also 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.

Remember, the 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-name for the cardholder,
  • cc-number for the credit card number itself,
  • cc-exp for the expiry date, and
  • cc-csc for the security again.

Again, some of these values can be broken down further if you need them: cc-exp-month and cc-exp-year for the month and year of the expiry date, for example.

The autocomplete attribute is really handy for log-in forms. Definitely use the values of email or 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.

Use an 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.

Wednesday, January 18th, 2023

Checked in at Jolly Brewer. Wednesday night session — with Jessica map

Checked in at Jolly Brewer. Wednesday night session — with Jessica

Tuesday, January 17th, 2023

Patrick / articles / Is the developer experience on the Web so terrible?

Over the past 10 years or so, we’ve slowly but very surely transitioned to a state where frameworks are the norm, and I think it’s a problem.

I concur.

Use the frameworks and libraries that make sense for you to deliver the best UX possible. But also learn the web platform from the ground up. Take time to understand how web browsers work and render webpages. Learn HTML, CSS, JavaScript. And keep an eye, if you can, on the new things.

Chain of tools

I shared this link in Slack with my co-workers today:

Cultivating depth and stillness in research by Andy Matuschak.

I wasn’t sure whether it belonged in the #research or the #design channel. While it’s ostensibly about research, I think it applies to design more broadly. Heck, it probably applies to most fields. I should have put it in the Slack channel I created called #iiiiinteresting.

The article is all about that feeling of frustration when things aren’t progressing quickly, even when you know intellectually that not everything should always progress quickly.

The article is filled with advice for battling this feeling, including this observation on curiosity:

Curiosity can also totally change my relationship to setbacks. Say I’ve run an experiment, collected the data, done the analysis, and now I’m writing an essay about what I’ve found. Except, halfway through, I notice that one column of the data really doesn’t support the conclusion I’d drawn. Oops. It’s tempting to treat this development as a frustrating impediment—something to be overcome expediently. Of course, that’s exactly the wrong approach, both emotionally and epistemically. Everything becomes much better when I react from curiosity instead: “Oh, wait, wow! Fascinating! What is happening here? What can this teach me? How might this change what I try next?”

But what really resonated with me was this footnote attached to that paragraph:

I notice that I really struggle to generate curiosity about problems in programming. Maybe it’s because I’ve been doing it so long, but I think it’s because my problems are usually with ephemeral ideas, incidental to what I actually care about. When I’m fighting some godforsaken Javascript build system, I don’t feel even slightly curious to “really” understand those parochial machinations. I know they’re just going to be replaced by some new tool next year.

I feel seen.

I know I’m not alone. I know people who were driven out of front-end development because they felt the unspoken ultimatum was to either become a “full stack” developer or see yourself out.

Remember Chris’s excellent post, The Great Divide? Zach referenced it recently. He wrote:

The question I keep asking though: is the divide borne from a healthy specialization of skills or a symptom of unnecessary tooling complexity?

Mostly I feel sad about the talented people we’ve lost because they felt their front-of-the-front-end work wasn’t valued.

But wait! Can I turn my frown upside down? Can I take Andy Matuschak’s advice and say, “Oh, wait, wow! Fascinating! What is happening here? What can this teach me?”

Here’s one way of squinting at the situation…

There’s an opportunity here. If many people—myself included—feel disheartened and ground down by the amount of time they need to spend dealing with toolchains and build systems, what kind of system would allow us to get on with making websites without having to deal with that stuff?

I’m not proposing that we get rid of these complex toolchains, but I am wondering if there’s a way to make it someone else’s job.

I guess this job is DevOps. In theory it’s a specialised field. In practice everyone adding anything to a codebase partakes in continual partial DevOps because they must understand the toolchains and build processes in order to change one line of HTML.

I’m not saying “Don’t Make Me Think” when it comes to the tooling. I totally get that some working knowledge is probably required. But the ratio has gotten out of whack. You need a lot of working knowledge of the toolchains and build processes.

In fact, that’s mostly what companies hire for these days. If you’re well versed in HTML, CSS, and vanilla JavaScript, but you’re not up to speed on pipelines and frameworks, you’re going to have a hard time.

That doesn’t seem right. We should change it.

On this day fourteen years ago, I went to PaperCamp, a day dedicated to the papernet:

https://adactio.com/journal/1546

Pics or it didn’t happen:

https://www.flickr.com/photos/adactio/albums/72157612675826706

It was fun!

Nick

Pattern Wise, System Foolish

A library of UX components is one common part of a design system, but the system itself is something bigger. A good system is also a shared set of strategies for solving visual and interactive communication challenges, a playbook rather than a script.

I like this way of putting it:

The problem is that treating a design system as a pantry full of widgets is, in and of itself, a failure of both craft and imagination. Think of it like a language: if a writer’s only engagement with it is grabbing words from the dictionary and heaping them together until “message” is achieved, things are going to suck. Language is more than a bag of words.

Henry From Online | How To Make a Website

Write meaningful HTML that communicates the structure of your document before any style or additional interactivity has loaded. Write CSS carefully, reason your methodology and stick to it, and feel empowered to skip frameworks. When it comes time to write JavaScript, write not too much, make sure you know what it all does, and above all, make sure the website works without it.

The whole article is great, and really charmingly written, with some golden nuggets embedded within, like:

  • You’ll find that spending more time getting HTML right reveals or even anticipates and evades accessibility issues. It’s just easier to write accessible code if it’s got semantic foundations.
  • In my experience, you will almost always spend more time overriding frameworks or compromising your design to fit the opinions of a framework.
  • Always style from the absolute smallest screen your content will be rendered on first, and use @media (min-width) queries to break to layouts that allow for more real estate as it becomes available.
  • If your site doesn’t work without JavaScript, your site doesn’t work.
  • Always progressively enhance your apps, especially when you’re fucking with something as browser-critical as page routing.

CSS { In Real Life } | Disentangling Frameworks

I just quoted Chris saying:

I think some tools are a good idea. But as few as possible, and the easier they are to stop using, the better.

Now Michelle asks:

Suppose we want to stop using Tailwind one day?

Turns out it’s a bit of a roach motel, much like most JavaScript frameworks: you can get in but you can’t easily get out.

So whenever possible, the safest, and most future-proof bet is to use the native features of the web platform.

Scalable CSS - Chris Coyier

Wise words:

Myself, I think some tools are a good idea. But as few as possible, and the easier they are to stop using, the better.

To paraphrase Michael Pollan:

Write CSS, not too much, mostly vanilla.

Monday, January 16th, 2023

Checked in at Dover Castle. Monday night session map

Checked in at Dover Castle. Monday night session

Line heights in CSS work better with ratios | Andy Bell

There’s a broader point here about declarative design:

Setting very specific values may feel like you’re in more control, but you’re actually rescinding control by introducing fragility in the form of overly-specific CSS.

Mars distracts

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!

Sunday, January 15th, 2023

map

Checked in at Bierbuik & Bloemeke. Beer & frites — with Jessica

Checked in at Meert. Coffee and cake — with Jessica map

Checked in at Meert. Coffee and cake — with Jessica

Checked in at Au Vieux de la Vieille. Cheesy lunch — with Jessica map

Checked in at Au Vieux de la Vieille. Cheesy lunch — with Jessica

Saturday, January 14th, 2023

A charming narrow Flemish house with a blue door and windowsills on a cobbled street.

Maison Lilloise.

Friday, January 13th, 2023

Checked in at La Capsule. Beer snacks — with Jessica map

Checked in at La Capsule. Beer snacks — with Jessica

Going to Lille. brb

Wednesday, January 11th, 2023

Checked in at Jolly Brewer. Wednesday night session — with Jessica map

Checked in at Jolly Brewer. Wednesday night session — with Jessica

Colin Devroe - Blogging is alive and well

The past, present and future of blogs.

Conditional CSS - Ahmad Shadeed

I like to think of CSS as a conditional design language.

Yes! This is exactly what I’m talking about with declarative design!

Read on for some fantastic examples. And also, Ahmad makes a comparison between CSS and Figma, pointing out that the conditional, declarative possibilities currently aren’t available in graphic design tools.

Five websites

Some lovely people have recently made some lovely websites.

Dan has launched his type foundry, Simple Type Co. and it’s gorgeous!

For as long as I’ve been making websites, Dan’s designs have been an inspiration: Corkd, Dribbble, his own website; whenever he unveils something it always sits just right with me.

Oh, and I love the tagline for Simple Type Co.:

Never perfect. Always a-okay.

Someone who is a perfectionist is Marcin. He’s been working on his book about keyboards for years now (the Kickstarter project will launch in February) and he’s made a stunning website for the book called Shift Happens. Click around and find out.

Mandy has a lovely new professional website, courtesy of Ethan. It’s called everything changes. I love the subtletly of the different colour schemes for dark and light modes. It’s almost as if Ethan knows a thing or two about responsive design.

Look! Jason has new professional website too. The text is just scrumptious. It’s almost as if Jason knows a thing or two about typography.

And look! Lynn has done it again—a new site design for a new year. Beautiful stuff, as always—have a look through the archive if you want to the creativity she puts into this every single year.

All of these people are my web design heroes.

Reading Who Fears Death by Nnedi Okorafor.

Buy this book

Tuesday, January 10th, 2023

Replying to @elliotjaystocks on mastodon.social

It’s no longer an issue. I was in California last month and that was fine.

But I think if you go to places like Florida in the summertime, there might be further questions to answer about tropical infectious diseases.

The Power of Indulging Your Weird, Offbeat Obsessions

  1. It’s enormously valuable to simply follow your curiosity—and follow it for a really long time, even if it doesn’t seem to be leading anywhere in particular.
  2. Surprisingly big breakthrough ideas come when you bridge two seemingly unconnected areas.

Blood

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.

Monday, January 9th, 2023

The Year of the Personal Website · Matthias Ott – User Experience Designer

Especially if you are a designer, an artist, a photographer, a writer, a blogger, a creator of any kind, owning your work is as important as ever. Social media platforms might be great for distributing your content and creating a network of like-minded people around you. But they will always be ephemeral, transient, and impermanent – not the best place to preserve your thoughts, words, and brushstrokes.

A post by Clearleft on LinkedIn

This is design engineering.

Sunday, January 8th, 2023

Picture 1 Picture 2 Picture 3
map

Checked in at Cat Inn. Anniversary Sunday lunch — with Jessica

Friday, January 6th, 2023

Replying to @andy@bell.bz on mastodon.social

Two fiddlers, Frances and Maryanne, eyes closed in concentration as they play together in a cosy living room.

Had a lovely afternoon playing jigs and reels.

Replying to @shanselman@hachyderm.io on mastodon.social

Yup, it’s classic POSSE: Post on your Own Site, Syndicate Elsewhere.

https://indieweb.org/POSSE

(Same with this reply: I’ve got a bookmarklet I use to pop open a new browser window pre-populated with the URL I’m replying to.)

Thursday, January 5th, 2023

Replying to @bkardell@toot.cafe on mastodon.social

This is the first web component I ever recall seeing in the wild years ago, and I still think it’s a good example of doing one thing well:

https://github.com/github/relative-time-element

A CSS challenge: skewed highlight — Vadim Makeev

I did not know about box-decoration-break—sounds like a game-changer for text effects that wrap onto multiple lines.

Wednesday, January 4th, 2023

My hand holding a postcard, the front of which is a contour map of Antarctica. The back of a postcard stamped from McMurdo Station that reads: Jeremy + Jessica, Happy New Year from Antarctica! Hope you have a year full of adventure! — Ariel Waldman

Got a postcard from Antarctica! Thank you, @arielwaldman@xoxo.zone

Tree views in CSS

Styling a list of nested details elements to create a beautiful lokking tree view, all in CSS, all nicely accessible.

Tuesday, January 3rd, 2023

Looking down on a fluffy tabby cat curled up on a pink blanket, its front paws extended as if to type on a keyboard, but actually resting on the back paws.

Coworking. #NotMyCat

Shift Happens

Marcin’s book is coming along nicely—you just know it’ll be a labour of love.

You’ve never seen a book on technology like this. Shift Happens is full of stories – some never before told – interleaved with 1,000+ beautiful full-color photos across two volumes.

The Kickstarter project launches in February. In the meantime, there are some keyboard-based games here for you to enjoy.

Reentry | A Working Library

The first day back at work after some time away is a kind of reentry: you’ve been in orbit, untethered from the gravity that typically keeps you in your chair, and now the friction of the atmosphere is rapidly warming you up, and weight is coming back into your bones, and it’s a lot to feel all at once.

Fragile Technologists – Terence Eden’s Blog

If you’ve made a computer do something - anything - in a logical fashion, you’re a programmer. Scratch? Programmer! CSS? Programmer? Conditional formatting in Excel? Programmer!

Monday, January 2nd, 2023

We Live In The Age of The Bullshitter ❧ Current Affairs

We also have a culture in which arrogance is rewarded rather than kept in check, and people can see that with enough shameless bluster you might become the richest person in the world or the president of the United States. There is no quick fix for the problem—if I offered one, I would be the very kind of bullshitter I strive to avoid being—but we at the very least need to recognize what it is we are trying to change. We are trying to create a culture of thoughtfulness and insight, where people check carefully to see whether what they’re saying is true, and excessively egotistical people are looked upon with deep suspicion. With time and patient effort, perhaps we can create a world in which the people who rise to the highest offices and reap the greatest rewards are not also the ones who are most full of shit. 

On the current decentralisation movement – Manu

The more I look at this “issue” the more I’m convinced the solution is already right there and it’s called the web. Want to have an unblockable, unbannable user profile? Buy yourself a domain and get a personal website. Want to have a space where you can say and do whatever the fuck you want? Get a webspace and put up a blog.

A fuzzy tabby cat curled up asleep and content on a pink crocheted blanket.

Having a nice lazy day, much like Coco. #NotMyCat

Why Not Mars (Idle Words)

I’ve come to believe the best way to look at our Mars program is as a faith-based initiative. There is a small cohort of people who really believe in going to Mars, the way some people believe in ghosts or cryptocurrency, and this group has an outsize effect on our space program.

Maciej lays out the case against a crewed mission to Mars.

Like George Lucas preparing to release another awful prequel, NASA is hoping that cool spaceships and nostalgia will be enough to keep everyone from noticing that their story makes no sense. But you can’t lie your way to Mars, no matter how sincerely you believe in what you’re doing.

And don’t skip the footnotes:

Fourth graders writing to Santa make a stronger case for an X-Box than NASA has been able to put together for a Mars landing.

Replying to @sally on mastodon.social

2022

This time last year when I was looking back on 2021, I wrote:

2020 was the year of the virus. 2021 was the year of the vaccine …and the virus, obviously, but still it felt like the year we fought back. With science!

Science continued to win the battle in 2022. But it was messy. The Situation isn’t over yet, and everyone has different ideas about the correct levels of risk-taking.

It’s like when you’re driving and you think that everyone going faster than you is a maniac, and everyone going slower than you is an idiot.

The world opened up more in 2022. I was able to speak at more in-person events. I really missed that. I think I’m done with doing online talks.

There was a moment when I was speaking at Web Dev Conf in Bristol this year (a really nice little gathering), and during my presentation I was getting that response from the audience that you just don’t get with online talks, and I distinctly remember thinking, “Oh, I’ve really missed this!”

But like I said, The Situation isn’t over, and that makes things tricky for conferences. Most of the ones I spoke at or attended were doing their best to make things safe. CSS Day, Clarity, State Of The Browser: they all took measures to try to look out for everyone’s health.

For my part, I asked everyone attending dConstruct to take a COVID test the day before. Like I said at the time, I may have just been fooling myself with what might have been hygiene theatre, but like those other events, we all wanted to gather safely.

That can’t be said for the gigantic event in Berlin that I spoke at in Summer. There were tens of thousands of people in the venue. Inevitably, I—and others—caught COVID.

My bout of the ’rona wasn’t too bad, and I’m very glad that I didn’t pass it on to any family members (that’s been my biggest worry throughout The Situation). But it did mean that I wasn’t able to host UX London 2022.

That was a real downer. I spent much of 2022 focused on event curation: first UX London, and then dConstruct. I was really, really proud of the line-up I assembled for UX London so I was gutted not to be able to introduce those fabulous speakers in person.

Still, I got to host dConstruct, Leading Design, and Clarity, so 2022 was very much a bumper year for MCing—something I really, really enjoy.

Already I’ve got more of the same lined up for the first half of 2023: hosting Leading Design San Francisco in February and curating and hosting UX London in June.

I hope to do more speaking too. Alas, An Event Apart is no more, which is a real shame. But I hope there are other conferences out there that might be interested in what I have to say. If you’re organising one, get in touch.

Needless to say, 2022 was not a good year for world events. The callous and cruel invasion of Ukraine rightly dominated the news (sporting events and dead monarchs are not the defining events of the year). But even in the face of this evil, there’s cause for hope, seeing the galvanised response of the international community in standing up to Putin the bully.

In terms of more personal bad news, Jamie’s death is hard to bear.

I got to play lots of music in 2022. That’s something I definitely want to continue. In fact, 2023 kicked off with a great kitchen session yesterday evening—the perfect start to the year!

And I’ve got my health. That’s something I don’t take for granted.

One year ago, I wrote:

Maybe 2022 will turn out to be similar—shitty for a lot of people, and mostly unenventful for me. Or perhaps 2022 will be a year filled with joyful in-person activities, like conferences and musical gatherings. Either way, I’m ready.

For the most part, that played out. 2022 was thankfully fairly uneventful personally. And it was indeed a good year for in-person connections. I very much hope that continues in 2023.

Sunday, January 1st, 2023

Fiddle, flute, and bouzouki players gathered in a kitchen, playing tunes. A group of musicians—mostly fiddle players, with a piper and box player—gathered round a kitchen table covered with plenty of food and drink.

Starting 2023 as I mean to go on: playing loads of trad.