Setting up the ActivityPub plugin on a DreamHost VPS-hosted wordpress blog

You would think just enabling ActivityPub would be a matter of installing the AcivityPub plugin, turning it on, and you’er good! Right?

Yeah, well, things are never quite that easy. This blog is currently hosted on a DreamHost VPS (because I finally gave up hosting everything on my 2009 Mac Mini as it fell way out of support and leaving that open on the ‘net seemed… unwise) with WordPress now (RIP whatever the hell I was using back in 2005. Something SixApart-ish? I think?) and it should be just a matter of installing the plugin, turning it on, and it’s good!

Things are never that easy.

First problem, the plugin requires that the host username is the exposed username for per-user feeds. When you set up wordpress at DreamHost it chooses a somewhat… random name, which is generally a good idea (I’ve watched my logs in the past where penetration attempts just cycle through lists of common first and last names trying to get access to stuff) but annoying in this case. Moreso because you can’t change your username once it’s set up, and while there’s not too much on the blog there’s certainly more than I want to re-post or lose.

The fix there is, because this is a just-me blog, turn on a single global-blog-wide feed rather than per-user feed. Go to the settings tab on the ActivityPub setting screen (they’re meta-settings, I guess) and tick the “Enable blog” profile checkbox and give your blog the username you should have given yourself but didn’t. So that’s nice.

Handy protip from this — if you have multiple users on a blog and want them to have sane account names for syndication, give ’em sane usernames to start.

Second problem is that search didn’t work and when I tried looking for it on my home instance (yay, for all your slightly surreal Providence and environs weather forecasts and reminders to repent to your weather lords) because this requires WebFinger setup. I installed the web finger plugin (which is noted to not be tested with the version of WordPress I’m using but whatever) but that didn’t work because DreamHost does… things, and stuff, with .well-known, which is annoying. As a result there wasn’t an entry in my top level .well-known directory for web finger.

The solution there is to add a rewrite rule to the top-level .htaccess file for the site. Courtesy of this bug update I added:

RewriteRule ^.well-known/(host-meta|webfinger|nodeinfo|x-nodeinfo) /blog/.well-known/$1 [L]

(yes, including the [L] at the end for reasons I don’t know) to my .htaccess file and that made things work.Yay! Searchable, and subscribable, and all that. Dunno if comments work (I guess I’ll find out soon) but there’s a feed and that’s excellent. I assume that if your blog has a root that isn’t /blog (mine is, so that’s nice) you’d want to update that. It’s also possible that you don’t need to do this at all if WordPress controls your entire site from / on down.

So, in summary, for DreamHost VPS-hosted WordPress blogs:
1) Install ActivityPub and WebFinger plugins
2) Turn on a full-blog feed
3) Edit your top-level .htaccess file to redirect web finger (and some other stuff) to your blog’s root directory .well-known directory

Hopefully this’ll help someone else who might be poking at things and wondering WTF exactly isn’t working.

No-churn non-dairy ice cream

(Or, rather, no-churn potentially non-dairy frozen custard. Close enough)

tldr: pastry cream + swiss meringue + cold. Freeze and enjoy!

I occasionally get an urge to make ice cream, but to date it’s never been strong enough to bother buying an ice cream machine — I’ve had those in the past and they’re frankly too much hassle for the utility, especially when I have a J.P. Licks within reasonable walking distance. Still, the idea of a no-churn ice cream is tempting, and I was wondering what I could do to make some when I wanted. Sure, there’s semifreddo which is a good enough option, but that requires having heavy cream around and I often don’t.

Thinking about ice cream got me thinking about one of its relatives, frozen custard (which is awesome), and that got me thinking that custard is almost pastry cream, which I do a bunch, pastry cream is easy and also potentially non-dairy, and I pretty much always have the ingredients around.

Just making and freezing pastry cream isn’t great because it’s kinda solid (turns out that all that air churned into ice cream really is important) so you need air in there. Whipped cream is useful for this but, as previously noted, I don’t usually have cream around for whipping.

My first thought was that pastry cream maybe could be whipped enough, but nope. It’s not like ganache where you can get a lot of air in, which isn’t surprising. (Fine, maybe with a lot of corn starch or added fat, but not base pastry cream) But… one of the things left over from pastry cream making is egg white, and with egg whites you can make meringue. Which is mostly air and traditionally used as a lightener for things. Turns out that if you make a batch of pastry cream then make a batch of Swiss meringue with the leftover whites and mix it in that you get a really rich, luscious, tasty frozen dessert. Score!

The recipe:

Pastry cream

350g liquid
three egg yolks (50g(ish), but whatever, close enough)
20g corn starch
75g sugar
(optional) splash of flavoring like vanilla

Toss everything into a pot. Stirring the whole damn time, because burnt pastry cream is awful, you bring this to a sputtering boil and cook or two minutes. (you really need to just make sure everything hits 75c/170f to neutralize the starch-munching enzymes in the egg yolks, though freezing makes all this much more forgiving)

Pop this into something that will let it cool quickly (I use a cake pan), cover with some plastic wrap or something so you don’t get a skin, and cool. Fridge-cool is best, but room temperature is tolerable.

While that’s cooling make the meringue which is stupid easy:

Swiss meringue

three egg whites
25g sugar (two tablespoons)
2g cream of tartar (optional)

Mix these in a metal bowl and heat over a bain marie until it hits 71c/160f. Take off the heat and whip to soft peaks.

When the pastry cream is cool-ish, whip it up as best you can (which won’t be great but give it a go for 30 seconds or so), fold in the egg whites and stir to combine. Put some plastic wrap on top for skin-prevention safety, drop everything into the freezer, and freeze until it’s solid.

Now, traditionally pastry cream is made with milk but it’s 100% fine to substitute any kind of liquid. Want orange “ice cream”? Use OJ. Want lemon? Use lemon juice. (I’d add a bit more sugar, and a couple of grams of baking soda to cut the acid, but you do you) Want Bailey’s Irish Cream flavor? You’d fit in well with a bunch of lawyers I know and also that’s probably awesome. (Might want to set your freezer a little colder for that) Anyway, choose your liquid, and if it’s not milk based then this is dairy free for a bonus.

Anyway, there you go. Pastry cream + swiss meringue, mix, freeze.

It does have a bit of a cooked flavor because, well, it is. Since it’s frozen you can probably get away with just heating it up until it gets thick rather than fully cooking it — I suspect (though I haven’t checked) that it will freeze up well before the amylases in the egg yolks liquefy the starches and turn it to goo.

As a bonus it’s even kinda lower-fat/lower-calorie than actual ice cream — there’s relatively little fat in the pastry cream itself, and none in the meringue. (That’s kind of beside the point, though.)

Lazy bread!

Preheating ovens is a waste of time

It’s snowing here today, so I figured it was an excellent day for stew and fresh crusty bread. And, as I didn’t have any fresh crusty bread it was time to make some. So I did.

This is a simple 65% loaf, with 500g of flour. No big deal, pretty standard, but the thing here is I got really lazy baking it. I’d heard that you could skip the oven/dutch oven preheating step and just toss the loaf into the oven cold. Since the loaf had already risen well before baking I figured my worst case was an OK loaf, but… this one worked out really, really well.

Baked in a 450F oven on fan, inside a french oven. (Which is just a dutch oven only without the lip on the lid to hold coals) Put the loaf into the cold pot, put the pot in a cold oven, turned on the heat, and let it go for an hour. Then I took the lid off and let it go for another 10 minutes to finish.

This worked great. Seriously, lovely loaf, the crust was all crackly while I took this pic and I’m quite looking forward to dinner and a chunk of this. I don’t think I’m going to bother preheating the oven ever again, at least not for simple lean loaves like this.

Also, entirely separately, the Fellow Ode grinder in the background remains awesome. Silt-free french press coffee is lovely and my only regret is not getting a nice grinder earlier on in our communal zombie apocalypse.


German Buttercream is awesome

Really really lemon cake. Seriously, that frosting is about 1/3 lemon juice by weight. Yes, I know, both my food photography and food styling skills need work. Gimme a break, we’re in a zombie apocalypse, I don’t get much practice.

The recipe

German buttercream frosting is one of the four and a half main kinds of buttercream frostings, and one that’s not as common here in the US as it really ought to be, because it’s both really easy and you can pack it full of flavor.

The recipe is simple:

  • 1 pound room temperature (~65F/19C) butter
  • 1 batch of pastry cream

Beat the butter until it’s light and fluffy. Beat it a lot. Once it’s fluffy start adding in the pastry cream one spoonful or so at a time, beating to incorporate. When all the pastry cream is added and the frosting is fully beaten (it’ll be a normal buttercream frosting consistency, fluffy and reasonably spreadable) then you’re done.

If your butter is too cold the frosting will be a bit thick and hard to work with, and if it’s too warm it’ll be thin and a little loose. Like with all other buttercreams, or most anything else that uses butter, temperature is important. If you’re somewhere warm, add extra corn starch to the pastry cream (it can handle up to about twice what my linked recipe has) which will make the pastry cream nearly solid but lightens up with the butter and helps offset higher temperatures.

This is enough to frost an 8″ or 9″ round cake. It might be a bit tight with a 9″ if you frost the middle, too, but seriously don’t do that — the middle layer should be something else that complements the cake and buttercream. (In mine here it’s lemon curd)

Why German Buttercream’s great

German buttercream frosting is great because it’s so simple, doesn’t require molten sugar, and you can make up the pastry cream ahead of time. If I want an actual white frosting I’d use something else (probably a Swiss buttercream made with goat butter) but for anything else? This is my current go-to frosting.

The other thing you have going for you here is that you can pack a huge amount of flavor into the frosting. Most buttercream frostings are buttery and sweet, but only mildly flavored. Some people like that but I prefer something with a bit more presence in the cake, and that’s what you have here. In the pic the (somewhat amateurish) cake is frosted with a buttercream that’s about 1/3 lemon juice by weight. It’s intensely lemon, and even though I added a bunch of sugar (almost 200g of powered sugar) it’s still really sour and it’s just awesome.

It’s really hard to get anything even close to that intense a flavor from other kinds of buttercreams. In some cases, where your flavoring agent is dry and intensely flavored like with freeze-dried berries, you can manage but it’s hard and you’re limited in the flavors available to you. For a German Buttercream, as long as your intense flavor is liquid you can go wild with it.

An apple spice cake with apple-cider frosting? Just make your pastry cream with cider and that’d be awesome and now I want it. Cranberry frosting for a chocolate-cranberry cake? (Or, at least, a  chocolate cake with a cranberry chutney filling and cranberry-juice-based frosting) Nice.

Once the office re-opens I fully intend on making a rich chocolate cake and a Jameson’s frosting. (Which, if I math out right, will be about 10% ABV (maybe a little less, there’s air in that volume), so eat responsibly when it happens)



Generic pastry cream

Pastry cream is a simple starch-stabilized variant of a custard. Traditionally it’s vanilla flavored, with some sugar and faffing around with tempering your eggs and such, but it turns out that’s not actually necessary.

350g liquid (~12 fluid oz)
50g egg yolk (~3 yolks)
22g corn starch (I dunno how much, weight it)

Optional: sugar (75g gives a reasonable sweetness most of the time)