Published

“When the blazing sun is gone”

I just remembered… Another one of my favorites from the Kronos Quartet anniversary concert was Laurie Anderson’s piece “Nothing Left but Their Names”. I knew I would like it, but I didn’t expect to also learn another verse of Twinkle Twinkle Little Star.

I wish I’d written it down because the way she introduced it made me laugh, something about it being rather apocalyptic for a lullaby. But I thought I’d be able to look it up afterward, so I didn’t. It doesn’t seem to be part of her original lyrics, so take my word for it.

I do remember that she sang “where” instead of “what”, which I liked.

Twinkle twinkle little star
How I wonder where you are!
Up above the world so high,
Like a diamond in the sky.
Twinkle twinkle little star
How I wonder where you are!

When the blazing sun is gone,
When he nothing shines upon,
Then you show your little light,
Twinkle, twinkle, all the night.
Twinkle, twinkle, little star,
How I wonder where you are!

Turns out there are five verses in total. B will be happy to hear that, it’s all he asks for at night.

Published

“an example of how wonder and humility can build up in the same way as toxins in nature and in ourselves”

I was delighted to accompany DB last-minute to Kronos Quartet’s 50th anniversary gig at Carnegie Hall on Friday night.

This was the set.

  • Severiano Briseño, “El Sinaloense (The Man from Sinaloa)” (2001; arr. Osvaldo Golijov)
  • Gabriella Smith, “Keep Going” (2023, co-commissioned by Carnegie Hall; New York Premiere)
  • Peni Gandra Rini, “Movement 1” from Segara Gunung (2023, co-commissioned by Carnegie Hall; arr. Jacob Garchik and Andy McGraw; New York Premiere)
  • Laurie Anderson, “Nothing Left But Their Names”, from Landfall (2012)
  • Tanya Tagaq, “Sivunittinni” (2015, co-commissioned by Carnegie Hall; arr. Jacob Garchik)
  • Tanya Tagaq, “Colonizer (Remix)” (2021; arr Tanya Tagaq, Kronos Quartet, and Joel Tarman)
  • Ariel Aberg-Riger / Hamza El Din, “Swimming with Rachel Carson” (2023; World Premiere) / Escalay (1989; real. Tour Ueda)
  • Traditional, “We’re Stole and Sold from Africa” (arr. Jake Blount and Jacob Garchik)
  • Michael Gordon, gfedcba (2023, co-commissioned by Carnegie Hall; New York Premiere)
  • Wu Man, “Silk” and “Bamboo”, from Two Chinese Paintings (2015, co-commissioned by Carnegie Hall; real. Danny Clay)
  • Moondog, “Choo Choo Lullaby” (1977; arr. Brian Carpenter)
  • Rahul Dev Burman, “Mehbooba Mehbooba (Beloved, O Beloved)” (1975; arr. Stephen Prutsman and Kronos Quartet)
  • Terry Riley, “Sunrise of the Planetary Dream Collector” (1981)

The performance included collaborators from throughout their career, and the Terry Riley piece brought all of the performers from earlier pieces and many more together in one huge jam. This included the Aizuri Quartet, Attacca Quartet, Bang on a Can All-Stars, PUBLIQuartet, Sō Percussion, Laurie Anderson, Gregg August, Jake Blount, Peni Sandra Rini, Brian Carpenter, Jacob Garchik, Iwo Jedynecki, Ayana Kozasa, Reshena Liao, Son Leon Lyuh, Tanya Tagaq, Wu Man, and more. Terry Riley gave a very endearing recorded introduction before his piece.

It’s super hard to decide… But I think I was most enchanted by Hamza El Din’s Escalay with Ariel Aberg-Riger’s spoken word and visual art. It was an incredible combination, and unexpected.

I knew very little about Rachel Carson, and about the forcible relocation of so many Nubians when the Aswan Dam was constructed. (To be honest, I know embarrassingly little about Nubia in general.) The program noted that the water wheel was the oldest mechanical device used for farmland irrigation in Nubia, and “Escalay is a representation of how to start the waterwheel and let it run.” El Din was introduced to Kronos by Terry Riley, and this is the piece he wrote for them.

Towards the end of Aberg-Riger’s “Swimming with Rachel Carson”, she said something about how Carson set “an example of how wonder and humility can build up in the same way as toxins in nature and in ourselves”. (That is not a perfect quote since I couldn’t write it down fast enough, forgive me.)

Something to strive for.

Published

SUCCESSFUL Adventures in setting up ActivityPub + Webfinger on a Flywheel-hosted WordPress site

Updated 31 October 2023 at 2:45pm to edit the NGINX config and give a further explanation.

I gave up too soon!

Emerson from Flywheel did more digging in the Fastly cache documentation and realized that we could tweak the NGINX config to fully support content negotiation. He added a Vary header to the necessary URLs et voilà, everything started working properly. Now, courtesy of Matthias Pfefferle’s great WordPress plugins and Flywheel’s dogged help, you can follow this blog on Mastodon if you search for @blog@piperhaywood.com or https://piperhaywood.com/@blog.

For future reference, this is the NGINX config tweak that got ActivityPub and Webfinger working on Flywheel with their Fastly caching setup:

location ~* /.well-known/webfinger {
    default_type application/activity+json;
    add_header Vary Accept;
    include internal-proxy.conf;
}

location ~* / {
    add_header Vary Accept;
    include internal-proxy.conf;
}

It’s fairly self-explanatory, but essentially the first location block ensures that all Webfinger endpoints have a default content type of application/activity+json, adds a Vary HTTP header so that Flywheel’s caching via Fastly will cache different versions of the page depending upon the content type, and includes further configuration via an internal-proxy.conf file. The second location block ensures that all URLs across the site basically do all of the above, but no default content type is set. (TBH I feel like I might only need the second block… but at this point everything is working nicely so I’m not going to ask the kind souls at Flywheel to change the config yet again!)

Colin from Flywheel explained the internal-proxy.conf file to me in my far-too-long support ticket:

The internal-proxy.conf is indeed an internal file that has platform-specific rules. Some of this config file is just simple cache rules, excluding common paths, whereas other parts are potentially sensitive as they pertain to our load balancing and proxy configs.

So that’s it! You can follow this blog now on Mastodon, and all blog posts published after October 30th should show up.

Published

Adventures in setting up ActivityPub + Webfinger on a Flywheel-hosted WordPress site

Update: We got it working! Take a look at this post for more.


I recently moved my hosting from NFSN to Flywheel. NFSN had served me beautifully for years, very economically, but I just don’t have as much time for admin anymore and Flywheel’s managed WordPress hosting was a useful move to cut down on that stress.

Alongside the hosting move, I’ve been trying to set up the very talented Matthias Pfefferle’s ActivityPub and Webfinger WordPress plugins to get this site on Mastodon.

Unfortunately, Flywheel doesn’t seem to play super nicely with the plugins. Part of this is Flywheel’s NGINX configuration which they lock down tight with good reason. But the bigger sticking point is Flywheel’s full-page caching mechanism. Though their caching provider supports content negotiation, Flywheel itself does not. This causes issues where JSON can end up being cached instead of HTML on various pages, most notably the homepage. (Apologies if you saw a JSON blob when visiting this site recently!) We tried to get around this by forcing the content type on the homepage and Webfinger endpoints, but JSON was still served up on the homepage whenever a client sent through a header with Accept: application/activity+json.

For now, I’ve deactivated the plugins. I’m hoping that Flywheel might look in to supporting them more broadly, but that realistically depends on demand from their customers. For posterity since I hope to revisit this in the future 🤞, here is the discussion about all of the above within the Webfinger repo, including some tips from Matthias.

Flywheel’s support staff have been pretty fantastic through all of this and I’ve been really happy with the hosting thus far so I’m not tempted to move hosts (again) for this. Not yet at least!

Published

“Power and safety are not the same thing”

It’s been an awful, heartbreaking October.

I don’t really know what to say about the conflict in Gaza and Israel. Part of it is that I don’t feel like I know enough. Both about all of the micro and macro events that have led up to this, and what’s going on in this moment. And I don’t really feel justified to share my feelings. It seems performative considering I have no personal ties and am many thousands of miles away.

But Eli did a great job articulating his feelings in this post, and I wanted to share that here since it is the one thing I’ve read that most closely mirrors my current thoughts.

It all feels a bit like staring in to the void.

“Tragedy” is almost a meaningless word, with the frequency it occurs.

Published

@piperhaywood.bsky.social

Finally went ahead and joined Bluesky, @piperhaywood.bsky.social (missed out on @piper, ah well). Thx for the code, Sam. 😘 Definitely not planning to leave Mastodon any time soon, but it felt like it was time to give it a go. IDK, Mastodon has started to feel… very pessimistically cynical? Understandable, but also exhausting. I probably need to refine my follows a bit, haven’t done that in a while.

I skimmed past a New Yorker headline earlier titled “Why The Internet Isn’t Fun Anymore”. And yeah, agreed, it’s definitely not as happy-go-lucky as it was in the past.

But I still find it fun! Maybe even more fun in some ways? So many great people are carving out their own niches online (by that, I mean personal sites or newsletters), and that’s where the real fun lies.

In other words: it’s all about RSS, baby! A place to really nurture your braincells away from any prying eyes or algorithms, where you can follow and unfollow with abandon without wondering, “well if I unfollow, are they gonna think insert-ridiculous-worry?”

And I’ve been hearing unexpected folks talking about RSS, family members and that sort of thing. Whisper it: is RSS becoming mainstream? 🤞 A girl can dream.

Will Bluesky also spark that joy? I’m skeptical. Mastodon is close but isn’t *quite* up there with RSS for me. We’ll see!

Published

Thoughts on search, AI as a rubber duck, and this blog

I’ve been working on a little side project recently that has been in the backlog for ages. I finally have a moment to pull it together, and it’s helping me brush up on a few Next.js 13 features I haven’t had the chance to play with yet.

As part of that, I’m doing a lot of searching around best practices on this that and the other, particularly server side rendering. It’s the first time in a while that I’ve been pointedly trying to use the internet to teach myself something in-depth related to coding, as opposed to finding quick sporadic answers.

Read some rambling thoughts on search 🔍, AI as a rubber duck 🦆, digital gardens 🪴, and the future of this blog 🧠

Published

Current listening: “Transatlanticism”

Currently listening to Transatlanticism 🐦
by Death Cab for Cutie.

One of my best friends from college just invited me to the Death Cab + Postal Service 20th anniversary gig at Madison Square Garden on the 20th. I am SO pumped.

Listening to Transatlanticism is giving me major high school flashbacks. Driving home past curfew on cool East Bay summer nights and knowing that I couldn’t possibly want, need, feel, any more than I did.

Published

Manifesting cake

All of the birthdays in our little family fall within a 15 day period in the middle of the summer. There was a lot of cake around for nearly a month. And then we went to the UK to visit family who kindly wanted to celebrate all of our birthdays, so we did it all over again.

Now, B asks for cake after nearly every meal, sometimes for breakfast. Obviously we’ve been trying to phase it out, explaining that there’s none left. But there have been enough times when he’s asked for it at random moments and it has been around. So there’s no way he’s going to chance not asking for it.

This was the conversation the other day at his Nana’s table during lunch.

“KEHK??”

“No buddy, there’s no cake.”

“… Happy bur-day?”

“No buddy, there’s no cake. It’s no one’s birthday.”

“…… Happy bur-day Nana?”

“… 🤦🏻‍♂️”

It had been my birthday, Sam’s birthday, and his birthday already. But we hadn’t celebrated Nana’s yet, so it was a logical ask to be fair.

I asked him what his favorite song was yesterday, and he started singing Happy Birthday. (This was 100% a ploy for cake, his actual favorite song is “Hey Jude” because he likes to yell the NAH NAH NAH part.)

He’s still getting over jet lag since we arrived back from the UK last weekend, lots of 5:30am-ish wake-ups. This morning, he wandered sleepily out of his bedroom to go use the potty and the first thing he said was, “Bur-day?”

I’m pretty sure he thinks he can manifest cake.