Archive: June, 2020

112

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

Tuesday, June 30th, 2020

The Whimsical Web

A collection of truly personal sites.

This site is meant to showcase how a more personal web could look like, and hopefully give you some inspiration to make your own corner of the web a bit weirder.

Of course Cassie’s site is included!

The Gentle Sadness of Things

There is a gentle sadness to being present in a moment so precious that you know you’ll never forget it, and will revisit it as a memory time and time again. It will be a shadow, many details missing, the moment bittersweet.

Playing The Humours Of Lisheen (jig) on mandolin:

https://thesession.org/tunes/1600

https://www.youtube.com/watch?v=NGVniHaMdRk

The Humours Of Lisheen (jig) on mandolin

Monday, June 29th, 2020

Replying to a tweet from @chriscoyier

Sunday, June 28th, 2020

Replying to a tweet from @philiprenich

Hemimastigophora

Probably fewer than a hundred people in the world have seen what you’re looking at right now.

Jessica and I were taking turns at the microscope when we were told that.

Let me back up a bit and explain how we found ourselves in this this situation…

It all started with The Session, the traditional Irish music community site that I run. There’s a big focus on getting together and playing music—something that’s taken a big hit during this global pandemic. Three sections of the website are devoted to face-to-face gatherings: events (like concerts and festivals), sessions, and the most recent addition, trips.

The idea with trips is that you input somewhere you’re going to be travelling to, along with the dates you’ll be there. It’s like a hyper-focused version of Dopplr. The site then shows you if any events are happening, if there are any sessions on, and also if there are any members of the site in that locality (if those members have added their location to their profiles).

Last August, I added the trips I would be taking in the States. There’s be a trip to Saint Augustine to hang out with Jessica’s family, a trip to Chicago to speak at An Event Apart, and a trip to New York for a couple of days because that’s where the ocean liner was going to deposit us after our transatlantic crossing.

A fellow member of The Session named Aaron who is based in New York saw my trip and contacted me to let me know about the session he goes to (he plays tin whistle). Alas, that session didn’t coincide with our short trip. But he also added:

I work at the American Museum of Natural History, and if you have time and interest, I can provide you with vouchers for tickets to as many special exhibits and such as you’d like!

Ooh, that sounded like fun! He also said:

In fact I could give you a quick behind-the-scenes tour if you’re interested.

Jessica and I didn’t have any set plans for our time in New York, so we said why not?

That’s how we ended spending a lovely afternoon being shown around the parts of the museum that the public don’t usually get to see. It’s quite the collection of curiosities back there!

There’s also plenty of research. Aaron’s particular area was looking into an entirely different kingdom of life—neither animal, nor plant, nor fungus. Remarkably, these microscopic creatures were first identified—by a classmate of Aaron’s—by happenstance in 2016:

The hemimastigotes analyzed by the Dalhousie team were found by Eglit during a spring hike with some other students along the Bluff Wilderness Trail outside Halifax a couple of years ago. She often has empty sample vials in her pockets or bags, and scooped a few tablespoons of dirt into one of them from the side of the trail.

That’s like a doctor announcing that they’d come across a hitherto-unknown limb on the human body. The findings were published in the paper, Hemimastigophora is a novel supra-kingdom-level lineage of eukaryotes in 2018.

In the “backstage” area of the American Museum of Natural History, Aaron had samples of them. He put them under the microscope for us. As we took turns looking at them wriggling their flagella, Aaron said:

Probably fewer than a hundred people in the world have seen what you’re looking at right now.

Saturday, June 27th, 2020

Playing The Porthole Of The Kelp (reel) by Bobby Casey on bouzouki:

https://thesession.org/tunes/263

https://www.youtube.com/watch?v=RHmugs5G_jM

The Porthole Of The Kelp (reel) on bouzouki
W00t! My copy of Purple People has arrived! Really looking forward to reading @QwertyKate’s “jolly dystopia.”

W00t! My copy of Purple People has arrived! Really looking forward to reading @QwertyKate’s “jolly dystopia.”

Friday, June 26th, 2020

Grid Cheatsheet

A useful resource for CSS grid. It’s basically the spec annoted with interactive examples.

Why BaseCamp & Hey.com are Wrong About the Apple App Store

I feel for BaseCamp, I do. But give up on the native app path. Make sure your existing web interface is a good progressive web app and you can end-run around Apple.

100 tunes

We got a headstart on the lockdown. A week before the UK government finally stopped dilly-dallying (at the expense of tens of thousands of lives), Clearleft became a remote-only company. At the beginning of this stay-at-home time, I started recording a tune a day. I wasn’t sure how long I’d keep it up, but I’ve managed to keep it going the whole time.

Yesterday I recorded my 100th tune.

It’s funny how small efforts can build up into a satisfying corpus. It’s not like I’m attempting anything ambitious, like Matthias, who is doing 100 days of writing. Recording one tune isn’t too much hassle. There are days when it’s frustrating and I have to do multiple takes, but overall it’s not too taxing. But now, when I look at the cumulative result, I’m very happy that I didn’t skip any days.

One hundred is a nice round number, so this could be a good time to stop. I could quit while I’m ahead. But I think I’ll keep going. Again, despite what the official line might be from the UK government (who have lost all trust), I reckon I’ll be staying at home for a while yet. As long as I’m here, I may as well keep playing. I have plenty more tunes to play.

At some point, the daily streak will end. But even then, I think I’ll continue to record tunes like this, even if it becomes more sporadic.

If you like these tunes, as well as being here on my own site, they’re all in a YouTube set. So …like’n’subscribe, or something?

We Are As Gods

A forthcoming documentary about Stewart Brand (with music by Brian Eno).

Thursday, June 25th, 2020

Top 10 books about remaking the future | Peter F Hamilton | Books | The Guardian

Here then are 10 stories of remaking the future that contain hope — or at least stability.

  1. The City and the Stars by Arthur C Clarke
  2. The First Fifteen Lives of Harry August by Claire North
  3. Revenger by Alastair Reynolds
  4. Children of Time by Adrian Tchaikovsky
  5. Do You Dream of Terra-Two? by Temi Oh
  6. Consider Phlebas by Iain M Banks
  7. Natural History by Justina Robson
  8. Ancillary Justice by Ann Leckie
  9. Way Station by Clifford D Simak
  10. News from Gardenia by Robert Llewellyn

Playing The Bucks Of Oranmore (reel) on mandolin:

https://thesession.org/tunes/2

https://www.youtube.com/watch?v=vRB5DQqjt5o

The Bucks Of Oranmore (reel) on mandolin

Cassie Evans’s Blog

Cassie’s redesign is gorgeous—so much attention to detail! (And performant too)

On dependency | RobWeychert.com V7

I’m very selective about how I depend on other people’s work in my personal projects. Here are the factors I consider when evaluating dependencies.

  • Complexity How complex is it, who absorbs the cost of that complexity, and is that acceptable?
  • Comprehensibility Do I understand how it works, and if not, does that matter?
  • Reliability How consistently and for how long can I expect it to work?

I really like Rob’s approach to choosing a particular kind of dependency when working on the web:

When I’m making things, that’s how I prefer to depend on others and have them depend on me: by sharing strong, simple ideas as a collective, and recombining them in novel ways with rigorous specificity as individuals.

Accessible to some - Manuel Matuzović

A score of 100 in Lighthouse or 0 errors in axe doesn’t mean that you’re done, it means that you’re ready to start manual testing and testing with real users, if possible.

Replying to a tweet from @mathowie

I know some people who went away to mime school.

They were never heard from again.

Wednesday, June 24th, 2020

Playing Na Ceannabháin Bhána (slip jig) on mandolin:

https://thesession.org/tunes/612

https://www.youtube.com/watch?v=ubPqMc1GASs

Na Ceannabháin Bhána (slig jig) on mandolin

Tuesday, June 23rd, 2020

CSS folded poster effect

This is a very nifty use of CSS gradients!

Introduction to Screen Readers Using Voiceover | Gymnasium

This is a great short introduction to using VoiceOver with Safari by the one and only Ethan Marcotte.

Monday, June 22nd, 2020

Always bet on HTML | Go Make Things

I teach JS for a living. I’m obviously not saying “never use of JS” or “JavaScript has no place on the web.” Hell, their are even times where building a JS-first app makes sense.

But if I were going to bet on a web technology, it’s HTML. Always bet on HTML.

Replying to a tweet from @jaffathecake

It’s a line in the sand that has existed for decades. Removing it unecessarily would be a huge step back.

What makes your proposal great is that it highlights instead of hiding. That’s not a minor part. It’s the breakthrough.

Replying to a tweet from @jaffathecake

I strongly disagree. Hiding any part of the URL with the assumption that “it’s for their own good” is an amputation. It disempowers the user. And, as your proposal shows, it’s not necessary.

Replying to a tweet from @jaffathecake

100% agree!

The key thing is highlighting the important part, rather than hiding anything (which is why I much prefer your proposal over Apple’s implementation).

Sunday, June 21st, 2020

Replying to a tweet from @jr_roman

Thank you, Julie!

Saturday, June 20th, 2020

Reading The Farthest Shore by Ursula K. Le Guin.

Buy this book

Friday, June 19th, 2020

Playing The Woman Of The House (reel) on mandolin:

https://thesession.org/tunes/321

https://www.youtube.com/watch?v=jlVoytkfNy0

The Woman Of The House (reel) on mandolin
Picture 1 Picture 2 Picture 3

Went for a nice walk in the countryside. ’Twas lovely to have the company of fellow humans like @Clagnut, @ChrisHow, and @CassieCodes.

Quotebacks and hypertexts (Interconnected)

What I love about the web is that it’s a hypertext. (Though in recent years it has mostly been used as a janky app delivery platform.)

I am very much enjoying Matt’s thoughts on linking, quoting, transclusion, and associative trails.

My blog is my laboratory workbench where I go through the ideas and paragraphs I’ve picked up along my way, and I twist them and turn them and I see if they fit together. I do that by narrating my way between them. And if they do fit, I try to add another piece, and then another. Writing a post is a process of experimental construction.

And then I follow the trail, and see where it takes me.

Replying to a tweet from @MKTLRwho

“Also, try select and `input[type=”date”]”

I think you missed the bit where I said “a way to style all the bits of a form control”. Try styling the open state of a select element using an element selector.

Replying to a tweet from @MKTLRwho

“Container queries are impossible based on the CSS render routine.”

Oh, no! You’d better tell @DavidBaron:

https://github.com/dbaron/container-queries-implementability

Thursday, June 18th, 2020

Replying to a tweet from @sarahalsherif

  • Years and Years (BBC iPlayer)
  • Tales From The Loop (Amazon Prime)

More here: https://adactio.com/journal/16844

Playing The Lark On The Strand (jig) on mandolin:

https://thesession.org/tunes/1634

https://www.youtube.com/watch?v=2fP-4GRWTgc

The Lark On The Strand (jig) on mandolin

Wednesday, June 17th, 2020

Where did the focus go? | Amber’s Website

Amber documents a very handy bit of DOM scripting when it comes to debugging focus management: document.activeElement.

Replying to a tweet from @adactio

Oh, and in my dreams: a way to style all the bits of a form control (like select, input type="date", etc.)

Replying to a tweet from @jensimmons

All browsers: contaaaaaainer queeeeerieeees!!!

Safari specifically: ambient badging (add to home screen) for progressive web apps.

There Has Never Been a Better Time to Read Ursula Le Guin’s “Earthsea” Books - Electric Literature

Well, this is timely! Cassie mentioned recently that she was reading—and enjoying—the Earthsea books, which I had never got around to reading. So I’m reading them now. Then Craig mentioned in one of his newsletters that he’s also reading them. Now there’s this article…

To white protestors and accomplices, who say that they want to listen but are fearful of giving up some power so that we can all heal, I suggest you read the Earthsea cycle. You will need to learn to step away from the center to build a new world, and the Black majority in this fantasy series offers a better model than any white history.

Pandemic Time: A Distributed Doomsday Clock - NOEMA

A meditative essay on the nature of time.

The simultaneous dimming of Betelgeuse and the global emergence of COVID-19 were curiously rhyming phenomena: disruptions of familiar, reassuring rhythms, both with latent apocalyptic potential.

Time and distance are out of place here.

We will have left a world governed by Chronos, the Greek god of linear, global, objective time measured by clocks, and arrived into a world governed by Kairos, the Greek god of nonlinear, local, subjective time, measured by the ebb and flow of local patterns of risk and opportunity. The Virus Quadrille is not just the concluding act of pandemic time but the opening act of an entire extended future.

Tuesday, June 16th, 2020

Happy Valentina’s Day, world!

Replying to a tweet from @torahwilcox

Looks like it’s only effective when someone is already receiving oxygen (e.g. on a ventilator). So it’s good news, but only for bad cases.

https://twitter.com/zeynep/status/1272877907036311554

Reading The Tombs Of Atuan by Ursula K. Le Guin.

Buy this book

Replying to a tweet from @jaffathecake

Jake, like I said, I really like your proposal. But the way you’re framing it here on Twitter (as opposed to in your video) is reductive and polarising.

(Here we are arguing when we agree about the bit that matters—the proposal.)

Replying to a tweet from @jaffathecake

Right. Those are some URLs. Some URLs aren’t easy to understand (sometimes by design, deceptively). We’re in agreement.

But I would never say “humans can’t read URLs” because they can’t read some URLs.

Replying to a tweet from @adactio

Painting all disagreement as people being “enraged” isn’t helpful.

And there’s a big difference between “some humans can’t read some URLs” and “humans can’t read URLs”.

Replying to a tweet from @jaffathecake

Keep the “They started it!” response for the schoolyard.

Listen, your video was clear, well-argued and level-headed. But your tweet was the opposite of that.

Replying to a tweet from @jaffathecake

Jake, I really like your proposal (as you know), but saying things like “I don’t know why this enrages folks so much. The truth is, humans can’t read URLs” doesn’t encourage good faith discussion.

Monday, June 15th, 2020

Replying to a tweet from @sstephenson

Heck, yeah!

Notifier — Convert content sources to RSS feeds

A service that—amongst other things—allows you to read newsletters in your RSS reader.

Replying to a tweet from @a_sandrina_p

I really like this approach!

https://adactio.com/links/17006

Sunday, June 14th, 2020

Sitting in the sunshine with something for all the senses.

Sitting in the sunshine with something for all the senses.

Playing Johnny O’Leary’s (slide) on mandolin:

https://thesession.org/tunes/11897

https://www.youtube.com/watch?v=oKnmxSe7E1I

Johnny O’Leary’s (slide) on mandolin

NASA Collection

Back in 1985, Ian wrote to NASA to get some info for a shool project (that’s how it worked before the World Wide Web). NASA sent him a treaure trove in response. Here they are, scanned as PDFs. Mercury, Gemini, Apollo, the Space Shuttle, and more.

Saturday, June 13th, 2020

Replying to a tweet from @m_ott

I’m getting an error when I try to send a webmention to that URL from https://adactio.com/links/17004

Internal Server Error

Undefined index: photo

Striking a Balance Between Native and Custom Select Elements | CSS-Tricks

I think this a solution worthy of Solomon. In this case, the Gordian knot is the select element and its inevitable recreation in order to style it.

What if we instead deliver a native select by default and replace it with a more aesthetically pleasing one if possible? That’s where the “hybrid” select idea comes into action. It’s “hybrid” because it consists of two selects, showing the appropriate one at the right moment:

  • A native select, visible and accessible by default
  • A custom select, hidden until it’s safe to be interacted with a mouse

The implementation uses a genius combination of a hover media query and an adjacent sibling selector in CSS. It has been tested on a number of device/platform/browser combinations but more tests are welcome!

What I love about this solution is that it satisfies the stakeholders insisting on a custom component but doesn’t abandon all the built-in accessibility that you get from native form controls.

Gormless

I sometimes watch programmes on TG4, the Irish language broadcaster that posts most shows online. Even though I’m watching with subtitles on, I figure it can’t be bad for keeping my very rudimentary Irish from atrophying completely.

I’m usually watching music programmes but occassionally I’ll catch a bit of the news (or “nuacht”). Their coverage of the protests in America reminded me of a peculiar quirk of the Irish language. The Black community would be described as “daoine gorm” (pronunced “deenee gurum”), which literally translated would mean “blue people”. In Irish, the skin colour is referred to as “gorm”—blue.

This isn’t one of those linguistic colour differences like the way the Japanese word ao means blue and green. Irish has a perfectly serviceable word for the colour black, “dubh” (pronounced “duv”). But the term “fear dubh” (“far duv”) which literally means “black man” was already taken. It’s used to describe the devil. Not ideal.

In any case, this blue/black confusion in Irish reminded me of a delicious tale of schadenfreude. When I was writing about the difference between intentions and actions, I said:

Sometimes bad outcomes are the result of good intentions. Less often, good outcomes can be the result of bad intentions.

Back in 2017, the Geeky Gaeilgeoir wrote a post called Even Racists Got the Blues. In it, she disects the terrible translation job done by an Irish-American racist sporting a T-shirt that reads:

Gorm Chónaí Ábhar.

That’s completely nonsensical in Irish, but the intent behind the words was to say “Blue Lives Matter.” Except… even if it made grammatical sense, what this idiot actually wrote would translate as:

Black Lives Matter.

What a wonderful chef’s kiss of an own goal!

If only it were a tattoo.

CSS Custom Properties Fail Without Fallback · Matthias Ott – User Experience Designer

Matthias has a good solution for dealing with the behaviour of CSS custom properties I wrote about: first set your custom properties with the fallback and then use feature queries (@supports) to override those values.

Quotebacks

This looks like a nifty tool for blogs:

Quotebacks is a tool that makes it easy to grab snippets of text from around the web and convert them into embeddable blockquote web components.

Friday, June 12th, 2020

Replying to a tweet from @tabatkins

And that can be very handy!

https://www.trysmudford.com/blog/currying-in-css/

The value after the : in the CSS custom property does not have to be valid CSS.

—@trysmudford

What was it like? (Phil Gyford’s website)

Congratulations and kudos to Phil for twenty years of blogging!

Here he describes what it was like online in the year 2000. Yes, it was very different to today, but…

Anyone who thinks blogging died at some point in the past twenty years presumably just lost interest themselves, because there have always been plenty of blogs to read. Some slow down, some die, new ones appear. It’s as easy as it’s ever been to write and read blogs.

Though Phil does note:

Some of the posts I read were very personal in a way that’s less common now, in general. … Even “personal” websites (like mine) often have an awareness about them, about what’s being shared, the impression it gives to strangers, presenting a public face, maybe a feeling of, “I’m just writing personal nonsense but, why, yes, I am available for hire”.

Maybe that’s why I’m enjoying Robin’s writing so much.

Robin Rendle ・ 2D Websites

When I log onto someone’s website I want them to tell me why they’re weird. Where’s the journal or scrapbook? Where’s your stamp collection? Or the works-in-progress, the failed attempts, the clunky unfinished things?

HTML Tutorial for Beginners 101 (Including HTML5 Tags) - WebsiteSetup

A really great one-page guide to HTML from Bruce. I like his performance-focused intro:

If your site is based on good HTML, it will load fast. Browsers incrementally render HTML—that is, they will display a partially downloaded web page to the user while the browser awaits the remaining files from the server.

Modern fashionable development techniques, such as React, require a lot of JavaScript to be sent to the user. When it’s all downloaded, the user’s device must parse and execute the JavaScript before it can even start to construct the page. On a slow network, or on a cheaper, low-powered device, this can result in an excruciatingly slow load and is a heavy drain on the battery.

Thursday, June 11th, 2020

A Rare Smile Captured in a 19th Century Photograph | Open Culture

I wrote a while back about one of my favourite photographs but this might just give it a run for its money.

It was only near the end of the 19th century that shutter speeds improved, as did emulsions, meaning that spontaneous moments could be captured. Still, smiling was not part of many cultures. It could be seen as unseemly or undignified, and many people rarely sat for photos anyway.

O-o-dee of the Kiowa tribe in traditional dress with a heartwarming smile on her face in a photograph over 100 years old.

Replying to a tweet from @olgakhazan

The Irish band @LankumDublin changed their name a while back too. They were previously called …Lynched. 😬

CSS custom properties and the cascade

When I wrote about programming CSS to perform Sass colour functions I said this about the brilliant Lea Verou:

As so often happens when I’m reading something written by Lea—or seeing her give a talk—light bulbs started popping over my head (my usual response to Lea’s knowledge bombs is either “I didn’t know you could do that!” or “I never thought of doing that!”).

Well, it happened again. This time I was reading her post about hybrid positioning with CSS variables and max() . But the main topic of the post wasn’t the part that made go “Huh! I never knew that!”. Towards the end of her article she explained something about the way that browsers evaluate CSS custom properties:

The browser doesn’t know if your property value is valid until the variable is resolved, and by then it has already processed the cascade and has thrown away any potential fallbacks.

I’m used to being able to rely on the cascade. Let’s say I’m going to set a background colour on paragraphs:

p {
  background-color: red;
  background-color: color(display-p3 1 0 0);
}

First I’ve set a background colour using a good ol’ fashioned keyword, supported in browsers since day one. Then I declare the background colour using the new-fangled color() function which is supported in very few browsers. That’s okay though. I can confidently rely on the cascade to fall back to the earlier declaration. Paragraphs will still have a red background colour.

But if I store the background colour in a custom property, I can no longer rely on the cascade.

:root {
  --myvariable: color(display-p3 1 0 0);
}
p {
  background-color: red;
  background-color: var(--myvariable);
}

All I’ve done is swapped out the hard-coded color() value for a custom property but now the browser behaves differently. Instead of getting a red background colour, I get the browser default value. As Lea explains:

…it will make the property invalid at computed value time.

The spec says:

When this happens, the computed value of the property is either the property’s inherited value or its initial value depending on whether the property is inherited or not, respectively, as if the property’s value had been specified as the unset keyword.

So if a browser doesn’t understand the color() function, it’s as if I’ve said:

background-color: unset;

This took me by surprise. I’m so used to being able to rely on the cascade in CSS—it’s one of the most powerful and most useful features in this programming language. Could it be, I wondered, that the powers-that-be have violated the principle of least surprise in specifying this behaviour?

But a note in the spec explains further:

Note: The invalid at computed-value time concept exists because variables can’t “fail early” like other syntax errors can, so by the time the user agent realizes a property value is invalid, it’s already thrown away the other cascaded values.

Ah, right! So first of all browsers figure out the cascade and then they evaluate custom properties. If a custom property evaluates to gobbledygook, it’s too late to figure out what the cascade would’ve fallen back to.

Thinking about it, this makes total sense. Remember that CSS custom properties aren’t like Sass variables. They aren’t evaluated once and then set in stone. They’re more like let than const. They can be updated in real time. You can update them from JavaScript too. It’s entirely possible to update CSS custom properties rapidly in response to events like, say, the user scrolling or moving their mouse. If the browser had to recalculate the cascade every time a custom property didn’t evaluate correctly, I imagine it would be an enormous performance bottleneck.

So even though this behaviour surprised me at first, it makes sense on reflection.

I’ve probably done a terrible job explaining the behaviour here, so I’ve made a Codepen. Although that may also do an equally terrible job.

(Thanks to Amber for talking through this with me and encouraging me to blog about it. And thanks to Lea for expanding my mind. Again.)

Wednesday, June 10th, 2020

Replying to a tweet from @SaraSoueidan

On that note: I just implemented the technique you shared in your latest blog post—thank you!

https://adactio.com/links/16989

“Confessions of a Shinagawa Monkey,” by Haruki Murakami | The New Yorker

It’s just about an old monkey who speaks human language, who scrubs guests’ backs in the hot springs in a tiny town in Gunma Prefecture, who enjoys cold beer, falls in love with human women, and steals their names.

A sequel to 2006’s A Shinagawa Monkey, translated by Philip Gabriel.

Optimizing keyboard navigation using tabindex and ARIA — Sara Soueidan

Smart thinking from Sara to improve usability for keyboard users by using aria-hidden="true" tabindex="-1" to skip duplicate links:

A good rule of thumb for similar cases is that if you have multiple consecutive links to the same page, there is probably a chance to improve keyboard navigation by skipping some of those links to reduce the number of tab stops to one. The less tab stops, the better, as long as it does not worsen or compromise on other aspects of usability.

I’ve cautiously implemented this pattern now over on The Session where snippets of comments had both a title link and a “more” link going to the same destination.

Tuesday, June 9th, 2020

Reading A Wizard Of Earthsea by Ursula K. Le Guin.

Buy this book

Intent

There are intentions and there are outcomes. Sometimes bad outcomes are the result of good intentions. Less often, good outcomes can be the result of bad intentions. But generally we associate the two: we expect good outcomes to come from good intentions and we expect bad outcomes to come from bad intentions.

Perhaps it’s because of this conflation that we place too much emphasis on intentions. If, for example, someone is called out for causing a bad outcome, their first response is often to defend their intentions. That’s understandable. When someone says “you have created a bad outcome”, I understand why the person on the receiving end would receive that feedback as “you intended to create this bad outcome.” Cue a non-apology that clarifies the (good) intention without acknowledging the reality of the outcome (“It was never my intention to…”).

I get it. Intentions do matter …just not as much as we give them credit for. I mean, in general, I’d prefer bad outcomes to be the inadvertent result of good intentions. But in some ways, it really doesn’t matter: a bad outcome is a bad outcome.

Anyway, all of this is just to preface something I’m going to say about myself:

I am almost certainly racist.

I don’t intend to be racist, but like I said, intentions aren’t really what matter. Outcomes are.

Note, for example, the cliché of the gormless close-minded goon who begins a sentence with “I’m not racist, but…” before going on to say something clearly racist. It’s as though the racism could be defanged by disavowing bad intent.

The same defence mechanism is used to defend racist traditions. “Oh, it’s not racist—that’s just something we’ve always done.” Again, the defence is for the intention, not the outcome. And again, outcomes matter far, far more than intentions.

I really don’t intend to be racist. But how could I not be? I grew up in a small town in Ireland where literally everyone else looked like me. By the same token, I’m also almost certainly sexist. Growing up as a cisgender male in a patriarchal society guarantees that my mind has been shaped in ways I now wish it weren’t.

Acknowledging my racism—and sexism—doesn’t mean I’m okay with it. On the contrary. It’s a source of shame. But acknowledging my racism is a necessary step to changing it.

In any case, it doesn’t really matter how I feel about any of this. This isn’t meant to be a confessional. What matters are outcomes. Outcomes aren’t really the direct result of intentions—outcomes are the direct result of actions.

Most of my actions lately have been very passive. Listening. Watching. Because my actions are passive, they are indistinguishable from silence. That’s not good. Silence can be interpreted as acquiescence, acceptance. That’s not what I intend …but my intentions don’t matter.

So, even though this isn’t about me or my voice or my intentions, and even though this is something that is so self-evident that it shouldn’t need to be said, I want to say:

Black lives matter.

Replying to a tweet from @lazy_atom

Mynjeerons!

Monday, June 8th, 2020

Easily rename your Git default branch from master to main - Scott Hanselman

Nice and straightforward. Locally:

git branch -m master main git push -u origin main

Then on the server:

git branch -m master main git branch -u origin/main

On github.com, go into the repo’s settings and update the default branch.

Thanks for this, Scott!

P.S. Don’t read the comments.

Playing The Little Diamond (polka) on mandolin:

https://thesession.org/tunes/604

https://www.youtube.com/watch?v=q9g0R-Lv5LE

The Little Diamond (polka) on mandolin

Replying to a tweet from @isellsoap

Whoops! Some weird caching issue—should be fixed now. Thanks for the heads-up.

Sunday, June 7th, 2020

There’s a voice inside your head that prevents you from sharing ideas—punch it in the face. - Airbag Industries

When I challenge the idea of topics—especially when I suggest writing about a design topic—the “I don’t know what to write about” excuse goes to level two: Someone has already written about [design topic]. And that might be true, but by Great Gutenberg’s Ghost, if that was a hard requirement for publishing, we’d have one newspaper, a few magazines, and maybe a thousand books. Hollywood would be a ghost town because we got to the end of all of the movie tropes by 1989. We’d have seventy-five songs with lyrics, but re-recorded in every music style and everyone would still hate Yanni. The point is you can’t let the people who have come before you be the excuse to stop you from writing or, frankly, creating.

Saturday, June 6th, 2020

Playing I Ne’er Shall Wean Her (jig) on mandolin:

https://thesession.org/tunes/803

https://www.youtube.com/watch?v=z71_TlM1dek

I Ne’er Shall Wean Her (jig) on mandolin

Hybrid positioning with CSS variables and max() – Lea Verou

Yet another clever technique from Lea. But I’m also bookmarking this one because of something she points out about custom properties:

The browser doesn’t know if your property value is valid until the variable is resolved, and by then it has already processed the cascade and has thrown away any potential fallbacks.

That explains an issue I was seeing recently! I couldn’t understand why an older browser wasn’t getting the fallback I had declared earlier in the CSS. Turns out that custom properties mess with that expectation.

Friday, June 5th, 2020

Playing The Belles Of Tipperary (reel) on mandolin:

https://thesession.org/tunes/769

https://www.youtube.com/watch?v=7EFrgn2fGmY

The Belles Of Tipperary (reel) on mandolin

Thursday, June 4th, 2020

Wednesday, June 3rd, 2020

marcus.io · Making RSS more visible again with a /feeds page

Personal website owners – what do you think about collecting all of the feeds you are producing in one way or the other on a /feeds page?

Sounds like a good idea! I’ll get on that.

Playing Rolling In The Ryegrass (reel) on mandolin:

https://thesession.org/tunes/87

https://www.youtube.com/watch?v=hBxBqigDb34

Rolling In The Ryegrass (reel) on mandolin

Tuesday, June 2nd, 2020

Replying to a tweet from @tommyvedvik

Genuinely saddened by @Tobi’s hypocrisy.

@Shopify supports Breitbart.

That’s some cognitive dissonance when you’re enabling white supremacists while sending company-wide memos about injustice.

Monday, June 1st, 2020

A virtual edition of the Brighton Acoustic Club is now live (and myself and @WordRidden might make an appearance):

https://www.facebook.com/brighton.acoustic.club/videos/353913525586816/

Global and Component Style Settings with CSS Variables — Sara Soueidan

Sara shares how she programmes with custom properties in CSS. It sounds like her sensible approach aligns quite nicely with Andy’s CUBE CSS methodology.

Oh, and she’s using Fractal to organise her components:

I’ve been using Fractal for a couple of years now. I chose it over other pattern library tools because it fit my needs perfectly — I wanted a tool that was unopinionated and flexible enough to allow me to set up and structure my project the way I wanted to. Fractal fit the description perfectly because it is agnostic as to the way I develop or the tools I use.

The Curse of Knowledge · Matthias Ott – User Experience Designer

A great explanation of the curse of knowledge …with science!

(This, by the way, is the first of 100 blog posts that Matthias is writing in 100 days.)

The Need for Speed, 23 Years Later

If you’re in a group of people being chased by a bear, you only need to be faster than the slowest person in the group. But that’s not how websites work: being faster than at least one other website, or even faster than the ‘average’ website, is not a great achievement when the average website speed is frustratingly slow.

Sass Color Functions in CSS | Jim Nielsen’s Weblog

I’m not the only one swapping out Sass with CSS for colour functions:

Because of the declarative nature of CSS, you’re never going to get something as terse as what you could get in Sass. So sure, you’re typing more characters. But you know what you’re not doing? Wrangling build plugins and updating dependencies to get Sass to build. What you write gets shipped directly to the browser and works as-is, now and for eternity. It’s hard to say that about your Sass code.

Picture 1 Picture 2 Picture 3 Picture 4

Summertime meals.