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

Chicken tinga recipe

Makes about 8-10 servings, depends on how you’re serving it. Takes about 10-15 minutes prep to chop and mince, then about 1½ hours of relatively hands-off cooking.

Heat a large pot over medium-high heat. Add about 2 TBSP of oil of your choosing, and then two sliced onions. Cook the onions until translucent, then add about 1 finely chopped chipotle in adobo (or more if you like it spicier), 3 cloves minced garlic, ¾ tsp salt, 2 tsp ground coriander, and 3 tsp ground cumin. Cook for a few minutes longer until fragrant.

Next, add everything else:

  • One 14.5 oz can of crushed tomatoes
  • About 30 oz water (two can-fulls)
  • Two bay leaves
  • Four medium carrots, peeled and cut in half
  • One celery stick, broken in half
  • A few grinds of pepper
  • One 1.5-2 lbs pack of boneless, skinless chicken thighs
  • 3 tsp oregano
  • 1 tsp chicken bouillon
  • ½ tsp salt

Turn the heat up to medium-high, and give it all a good stir. Once it is bubbling profusely, turn it down to a simmer and cook it for at least an hour until the thighs are super tender. Stir it occasionally, maybe ever 15 minutes or so and more frequently as you get further in to the cooking time to prevent sticking.

About 40 minutes in, remove and throw out the bay leaves, carrots, and celery.

When the thighs seem to be falling apart, gently remove them with tongs and set them on a plate. Let the sauce continue simmering while you shred all of the meat with two forks, then set the meat plate aside. You want to reduce the sauce until is pretty thick, so make sure you stir it pretty frequently.

Once the sauce is the desired consistency, use an immersion blender to liquify the sauce in the pot and then add the meat back to the sauce as well as the juice of 1 lime. Give it a stir, then taste it. Add more adobo sauce if you want it spicier, salt if needed (it will probably be needed), or more lime juice if you want it a little more tangy. Then let it simmer further, stirring frequently, until it has reached the desired consistency.

Serve it however you like. Tacos are great, just put the big pot of tinga on the table with some little warmed tortillas, sliced radishes, cotija cheese and/or sour cream, hot sauce of your choosing, and cilantro.

Read notes

Published

Been thinking about Ursula K. Le Guin’s “The Carrier Bag Theory of Fiction” a lot (again) recently.

Tonight, I came across Jeremy Keith’s journal post “Decision time” and instantly thought, “Yes, and I wonder if he’s read that essay…” I was going to recommend it, but wanted to read it again first to double-check that it is as relevant as I remember.

So I pulled Dancing at the Edge of the World off the shelf. I never noticed it before, but there’s a little legend in the Table of Contents. Feminism ♀, Social Responsibility ◯, Literature □, and Travel →. The essay is tagged ♀ and ◯.

The “Feminism” tag doesn’t surprise me at all. “Social Responsibility” though… it doesn’t surprise me either, but it’s an interesting way of labelling it. It’s right, of course. And the symbol tickled me, TCBOF has always felt like a circle.

Related: I made a print-on-demand t-shirt of my favorite phrase from TCBOF a little while back. If you’re interested LMK.

Published

Visiting Storm King

We took a little day trip up to Storm King with some friends this past weekend on the most terrifyingly summery day of Autumn.

B seemed to love it. Of what we saw, I think that Calder’s The Arch and Noguchi’s Momo Taro were his favorites. I think he was just bowled over by the scale of The Arch, every time he saw it on the horizon he shouted “SCULP-TURR!!”. And he got a real kick out of sitting in and rambling over Momo Taro.

I was 90% sure that he and his little friend were allowed to crawl all over Noguchi’s piece based on Storm King’s guide and map. But I didn’t really know the extent of it until I looked up the piece on Storm King’s site just now.

The full realization of Momo Taro depends on the interaction of visitors, who are invited to not just touch, but to enter, to sit, and to unite their bodies with the work — to participate in its existence. Noguchi’s flat bench provides a welcome site for rest and contemplation. The “center” of the piece — the hollowed-out granite “peach pit” — serves as a peaceful retreat. Even on the hottest summer days this interior remains cool. Noguchi expressed his wish that visitors, especially children, would not only climb into the cavity but also sing inside it and enjoy its special aural resonance.

🥲 Wish granted! B’s buddy declared the “white one” to be her favorite sculpture when they left the park.

And B was such a trooper, he walked all over the Meadows and Museum Hill before we took a loop around the park in the tram. Then we headed back to the cafe for some lunch and picked up the stroller to walk all the way over to see Andy Goldsworthy’s Storm King Wall.

I was looking at the map on our way home and couldn’t believe how much we missed considering we spent about six hours there. We basically didn’t do the North Woods, Maple Rooms, or South Ponds at all. But it was never about completionism, it’s a good excuse to plan a trip back soon. Would love to go in the summer to check out Moodna Creek as well, though I don’t think it’s safe for swimming.

Not gonna show any photos of sculptures because too many of them have B in them, and there are better photos of them online anyways. But the landscape was gorgeous, so here’s some overexposed sky and grass.

A partly cloudy sky in autumn with tall grass in the foreground

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 🧠