Blogging status update

One or two of you may have noticed that I’ve not posted very much lately. Mostly this is because I’ve been bike commuting, which means I can only bring small things into work (not carrying a cake or pie in my backpack on a bumpy 20-mile ride!), but also I’ve been doing some recipes I’ve already written about, and see no need to write up again. (One embarrassing example this weekend was Joanne Chang’s “Chocolate Chunk Cookies”, from Flour, which I did two years ago but failed to note in the book, so I added it to my schedule again despite not having been happy with how they turned out!)

At my latitude we’re presently losing two minutes of daylight every day, so bike commuting will shortly become impractical and I’ll be getting back to my regular routine. Perhaps I’ll even finish the list I have oh-so-cleverly titled “Spring Baking” before next spring rolls around.

While I’m at it, kudos to the Town of Wellesley for managing to repave a one-mile stretch of Washington St. (Route 16) in two weeks, when most other towns would still have the scarified pavement exposed and making life dangerous for cyclists after two months or more.

Aside | Posted on by | Leave a comment

With a sigh and a tear…

The most awesome person in the world disappeared from my life this week, in all probability for good. It may be claiming a bit much to say that she was ever really in my life; while she was certainly in my mind a great deal over the past six years, I doubt she ever gave an unprompted thought for me. It will probably not take much time for me to fall out of touch once I am no longer in regular face-to-face contact, as has happened with nearly every other acquaintance of my entire life, and it’s exceedingly unlikely I will ever again meet anyone so amazing. (And if somehow I should meet someone like that, given the circles I move in, the social and cultural gulf between us is likely to be even vaster and less conceivable to bridge.) I baked a cake for her party a few weeks ago, and spoke to her once more, just briefly, as she prepared to take her leave. To spare her the embarrassment, years hence, from the Web’s unblinking eye, I am deliberately not giving her name. I hope the rest of her life turns out well, and that she have the sort of career and family situation that she will find satisfying.

It is, I suppose, the story of my life: meet fantastic smart people with whom I share no social connection, briefly inhabit the same office building, and then have them complete their studies and vanish, never to be seen again, all the while I grow older and the social distance between me and everyone else in my life, which has never been close — not even in those life phases when people are alleged to make the social connections that define the rest of their lives — grows ever greater. Even the very few people I’ve managed to keep in touch with in the absence regular face-to-face contact — who I could count on the fingers of one hand — seem more distant today than ever.

I do not know where this leads; I never have. There have been so many turnings in my life, choices made that might have led to very different outcomes, that cannot be taken back now. The likeliest result, it seems, is that I shall die alone, lonely and little-remembered, in about four decades’ time, having left nothing behind, no family, no lasting artifacts, no reason to be remembered beyond the vast trail of data that all of us are now depositing in the server farms of the world. I am neither rich, nor famous, nor powerful, and the only situations where I regularly come into contact with new people are now dominated by people two decades my junior, who are unlikely to see me as anything more than the provider of a technical service, paid for by their employer.

Aside | Posted on by | Tagged , | Leave a comment

Protest-vote idiocy

I stumbled across some whiners on Twitter today who hate their country so muchhate Hillary Clinton so much that they would rather have their vote not count at all, or worse, throw the election to Donald Trump, rather than vote for her. At least one of these people claimed to be a lawyer and should know better (but perhaps he was actually representing the views of a client). This is tolerable silliness in one of the “safe” states (for either relevant party), but a grave danger in the swing states, where protest votes could actually throw the election to the forces of evilTrump. To think otherwise is to willfully misunderstand how our electoral system structurally locks in the two dominant parties — even more so now than in 1860, when the modern two-party system came into being. Our electoral system, especially at the presidential level, deliberately disenfranchises geographically dispersed minority opinion. This is inescapable in any first-past-the-post electoral system, as should be obvious from the fact that there are far more Republicans in the House of Representatives than their vote share in the last election would predict, but the winner-take-all nature of the presidential election (except in two states with only a small number of congressional districts and therefore electors) takes this to another level: it takes only a plurality vote to send all of a state’s electors to a given candidate, and those (possibly a majority!) who voted for someone else get absolutely nothing.

So sure, go ahead and vote for Dr. Stein (or Gov. Johnson or whoever the Socialist Workers should nominate) — but only after you’ve gotten a constitutional amendment to abolish the electoral college and institute in its place direct election of the president using some form of preference voting. Which is not going to happen without changing the composition of Congress and 35 state legislatures — and that requires running serious, credible campaigns for all those offices. If you’re serious about making Greens or Libertarians or Pirates or Marxist-Leninists relevant in those elections, that is going to mean constitutional changes in a lot of states to introduce proportional representation — because even in countries with strong multiparty systems the parties at the political center tend to dominate and will nearly always win in single-member-district FPTP elections. (Thanks to the early-20th-century Progressive reforms, this would be possible to do by citizen’s initiative in many states — if you can get the voters to agree, which is likely to be an uphill battle but still within the realm of the achievable. For that matter, most states that don’t have initiative still require a plebiscite on constitutional amendments.)

To change the U.S. House of Representatives is probably going to take a court case, and (here is where it matters whether Clinton or Trump wins the next election) a much more progressive Supreme Court than the one we have now — because the House acting on its own is never going to repeal the law that prohibits states from using anything other than single-member districts, and the current Supreme Court won’t use the Civil War Amendments to strike it down. (Ideally we would have a mixed-member proportional system, as is used in Germany, but because of the “overhang” that would require another constitutional amendment.) If that’s unachievable, the next-best thing would be to substantially increase the size of the House, which has been fixed at 435 for the better part of a century — increasing the size of the House to 491 or so, while it would give more seats to some southern states like Texas, would put additional pressure on the partisan gerrymanders that make so many House seats “safe”. Even just changing the laws in many states to require nonpartisan redistricting commissions, like in California, would give us a more representative Congress.

These would all be good things, and beneficial for democracy and for the future of the country — unlike voting for Jill Stein (or Gary Johnson or whoever). That’s just idiotic. And I say this as someone who voted for Sanders in the Democratic primary: because I’ve been around for a few elections now, and I can do arithmetic, and I have studied history, and I have read the Constitution.

Aside | Posted on by | Tagged

Recipe quick takes: Joanne Chang’s Peanut Butter Honey Cookies

Hey, it’s another report in my series on Joanne Chang’s cookie recipes — with any luck, I’ll be done by the end of the month. Cookies work well for me this summer because I’ve been doing a lot of bike commuting, and it’s not practical to carry bulky foods like layer cakes or fruit pies in my backpack, whereas I can fit eight or ten cookies easily and share with my co-workers in the usual way. (I rarely bake anything I can’t share these days because I need to not eat this stuff — the whole point here is to make something that I’d like to try and then trick other people into eating the surplus for me!) For the Fourth of July weekend I made Peanut Butter Honey Cookies, another recipe from Joanne Chang’s Baking with Less Sugar (Chronicle Books, 2015; p. 108). I messed this up in a couple of different ways, so I can’t exactly claim that my results are representative, but I also found an error (albeit a minor one) in the recipe as published. Perhaps as a result, I wasn’t especially pleased with the outcome, and the comments from my tasters were not especially favorable. Here’s how it went:

Mise en place
Starting as usual with the mise en place means explaining the error in the recipe I mentioned above. Like most cookies, this recipe starts with butter, and the ingredients list says “140 g/¾ cup unsalted butter”, which is clearly wrong. Since Chang’s recipes are generally based on bakery formulas, I assume that the weights are more reliable anyway, and so I went for the 140 g figure (that’s 5 oz or 10 tbl — 2 tbl short of ¾ cup). Other wet ingredients are 260 g unsalted, unsweetened peanut butter; 170 g honey (I used the local, raw, wildflower honey shown in the picture); one whole large egg and one egg yolk; and a tablespoon of vanilla extract. (I note that the recipes in this book in particular tend to call for much higher quantities of vanilla extract than those in Chang’s previous cookbooks, but I’m not sure what to make of that.) The dry ingredients are 105 g all-purpose flour, 50 g old-fashioned rolled oats, ½ tsp baking soda, 1¼ tsp kosher salt, and 100 g chopped raw peanuts. I wasn’t able to find raw peanuts in the store (in fact, I don’t ever remember seeing raw peanuts, so I looked for some lightly roasted peanuts to use instead, and I chopped them in the food processor, which unfortunately leads to a very uneven mixture of peanut pieces, some whole and some tiny fragments.

Butter and honey mixed
The first step of the process involves beating the honey and sugar together until thoroughly mixed and creamy. It’s best to start with butter that is quite soft, much softer than one would usually prefer for the traditional creaming method with crystalline sugar.

All wet ingredients, in the middle of mixing
After whisking the egg, egg yolk, and vanilla together, they are added to the creamed butter-honey mixture and beaten for several minutes, stopping occasionally to scrape the sides and bottom of the bowl, until homogenous. This takes a while, again rather longer than with the traditional creaming method, and it’s best to start with ingredients at warm room temperature. Once the mixture is fully combined, the peanut butter is quickly beaten in.

Wet ingredients fully mixed
Separately, the dry ingredients are stirred together to combine (and as with last week’s recipe, it’s easier to whisk the salt and soda into the flour separately before adding the chunky ingredients), and then the dry team is folded into the wet until fully incorporated.

Finished dough being weighed on scale
The recipe makes about 850 g of batter. I transferred it to my small Pyrex bowl and covered tightly with plastic wrap to spend a day in the refrigerator, as Chang recommends for all of her cookie recipes. Taking note of the total weight and the advertised yield of the recipe, I calculated that each cookie should be 50–55 g in weight of raw dough. However, the latest government warnings about birds defecating over wheat fields did not prevent me from eating some of the raw dough, and I only had about 750 g of dough left when I portioned out the cookies the following day.

Four small portions of dough on a cookie sheet
I experimented with a couple of different dishers and decided to use my #30. In retrospect, I should have used a #24 disher instead; while my first few dough balls with the #30 were close to my 50-gram target, overall I ended up averaging about 41 grams, and that had an impact on the resulting cookies. (But as a bonus that meant that I could claim each cookie was only ⅘ of a serving!)

Twelve fully baked cookies
The cookies are baked in a 350°F (175°C) oven for about 16 minutes. The recipe calls for squashing the dough balls flat with the palm of your hand, and then cross-hatching them with the tines of a fork in the traditional way before baking, but I totally missed this step in the recipe for the first 12 cookies I baked — I ended up using a spatula to flatten the cookies halfway through the baking process when I realized that I had forgotten this step. I think these turned out relatively OK, albeit a bit thicker and cakier than I would prefer; the ridges you see are the result of the slots in the spatula that I used for the flattening.

Sixteen cookies, four prepared per directions
You can see the four cookies where I actually got the preparation right on the left: they are flatter and darker than the first batch of twelve, and actually a bit overbaked. (I gave them the same baking time as the first sheet.) Overall, I think I prefer the full-sugar cookies, rolled in granulated sugar and fork-squashed like I remember from my younger days, and the comments from my tasters generally reflected this preference as well. The cookies were plenty tender, but even with the added chopped peanuts lacked a certain crunch that most tasters expected.


Nutrition Facts
Serving size: 1 cookie (50–55​g unbaked)
Servings per recipe: about 16
Amount per serving
Calories 271 Calories from fat 167
% Daily Value
Total Fat 19​g 29%
 Saturated Fat 6​g 30%
Trans Fat 0​g
Cholesterol 42​mg 14%
Sodium 131​mg 5%
Total Carbohydrate 20​g 7%
 Dietary fiber 2​g 8%
 Sugars 10​g
Proteins 7​g 15%
Vitamin A 8%
Vitamin C 0%
Calcium 2%
Iron 6%
Posted in Food | Tagged , , , | 1 Comment

Some notes on our new generation of ZFS-based file servers

Consistently among the most popular posts on this blog are a series I wrote very early on about our architecture (at work) for big file servers based on commodity hardware, FreeBSD, and ZFS (part 1, part 2). We are in the process of replacing our older generation of servers with newer technology, taking advantage of the increase in disk capacity to move from 96-drive servers that take half a rack to 4U, 24-drive servers. This does have some consequences for capacity and performance (although the increased memory in these servers should hopefully mitigate the performance concerns). I’m presently engaged in copying the data off one of the old servers (using zfs send | zfs recv) to new servers so that we can unrack the old server and make room for two more new servers. On of the biggest datasets just finished its initial copy today, and I wrote a few things for my colleagues about this process in our office Jabber conference. The rest of this post is a lightly edited version of that.

$ df -i /export/vision/[redacted]
Filesystem                 1K-blocks        Used      Avail Capacity   iused       ifree %iused  Mounted on
export/vision/[redacted] 28926547412 23434396266 5492151146    81% 527217855 10984302292    5%   /export/vision/[redacted]

This filesystem might finally be fully moved on Monday, after four weeks of effort.
[It finished today after three previous attempts that all bailed out when the dataset exceeded quota on the new server; the following explains why. Another sync will be required on Monday to catch up with any updates the users may have made.]

527 million files, for an average size of 55 KiB per file. Moving this from a filesystem with 512-byte blocks and 3072-byte RAID stripe to a filesystem with 4096-byte blocks and 20480-byte RAID stripe expands the data by about 5 TiB.

FWIW, the capacity of the new servers in RAID-Z2 (3×7) is 98 TiB, whereas RAID-1 (11×2) is 77 TiB…. Wondering if I should configure one of the new servers as 2×11 RAID-Z2 just to see how that works out (higher fragmentation for these vision filesystems, and slower, but theoretically higher capacity). For those who are a bit confused by this: RAID-Z is not like RAID-5, and doesn’t have a fixed stripe size; to avoid the “write hole” (requiring read-modify-write cycles to fill out a partial stripe), RAID-Z writes short stripes with full parity if there’s not enough data to make a full stripe. In the worst case, RAID-Z2 will write two parity blocks for a single data block if that’s all there is to be written. The old servers have 88 active drives, arranged in 11 stripes of 8 drives each with RAID-Z2, but the drives have 512-byte sectors so a “full stripe” is 6×512 = 3072 bytes plus parity; the new servers as currently conceived have 21 active drives in 3 stripes of 7, again with two parity, but 4k sectors mean that a full stripe is 5×4096 = 20480 bytes. [The new servers have 24 drive bays, leaving 23 available for data after ZIL, but we built them with 22 drives including a hot spare.] So if average write size (after compression) is 8k or less, you’re better off with mirroring rather than RAID-Z2.

A bit more about our ZFS dataset migration process. These filesystems are all NFS exported read-write to the client systems. Most of the data movement takes place without user involvement, taking advantage of our existing daily, monthly, and hourly snapshots to make efficient, self-consistent copies of each filesystem. Once this process is complete, we coordinate downtime with the users. At the beginning of the downtime window, we set each dataset to be migrated readonly=on and wait for the next hourly snapshot. (Doing it this way ensures that old manual snapshots are not accidentally left hanging around consuming disk space.) We then replicate that snapshot to the new server and clear the readonly property on the destination datasets with zfs inherit. Updated automount maps pointing to the new server are pushed to our Puppet masters, and if the users actually followed instructions, all of the client machines will get updated within half an hour. (Sometimes the users don’t follow instructions and the old server has to be force-unmounted to allow the automounter to mount the new location.) Finally, if we are backing up the filesystems, the backup server is updated to reflect the migration. (There’s no need to take a new full because ZFS replication preserves inode numbers and times.)

Posted in Computing, FreeBSD, ZFS | Tagged , ,

Recipe quick takes: Joanne Chang’s White Chocolate–Cherry–Almond Cookies

It’s nearly a week late, but since I’m in the middle of the next recipe already, I need to clear this one out of the queue. White Chocolate–Cherry–Almond cookies are one of Joanne Chang’s newer recipes, from her Baking with Less Sugar (Chronicle Books, 2015; p. 47). I’ve had varied results from this cookbook, and these cookies were rather disappointing: they turned out quite cakey, and more than one taster asked me if they were muffin tops. They weren’t bad, just not particularly good, and the satisfaction:calorie ratio was not high enough to justify a repeat visit. But since I took all these pictures, I’m going to do the walkthrough anyway.

Mise en place
We start, of course, with the mise en place. There are quite a few ingredients, including three different sources of almond flavor. The wet team starts with 225 g of unsalted butter (softened, of course) and a mere 75 g of sugar. Unlike what this photo shows, there are three egg yolks and only two whole eggs (and yes, those are blue “heirloom breed” eggs, just because I felt like buying them that day when I realized I didn’t have enough). The wet works continue with an enormous 2 tbl (30 ml) of vanilla extract and 2 tsp of almond extract. The dry team consists of 120 g of slivered almonds, 70 g almond meal (a bit chunky in the photo because I took it out of the freezer), 230 g all-purpose flour, 1 tsp each of baking soda and kosher salt, 335 g of white chocolate chunks (Callebaut was all I got get easily), and 200 g of unsweetened dried cherries. I was supposed to “coarsely chop” about half of the dried cherries, but totally forgot to do this.

Cookie dough
The cookie dough comes together by the standard creaming method. Chang recommends five minutes for the initial creaming step, and two to three minutes to beat in the rest of the wet works. All of the dry ingredients are mixed together in a separate bowl before stirring into butter-egg mixture, and the ultimate result looks like this. (Chang’s directions just say to mix together all of the dry ingredients by name, but you really want to whisk the powdered dry ingredients together first, before tossing to combine with the nuts, cherries, and chocolate, otherwise you’re liable to get an incompletely mixed mess.)

Dough balls arrayed on a baking sheet
After resting in the refrigerator overnight, the dough is ready to portion. The recipe makes about 1300 g of dough, and has a stated yield of 16–20 cookies, so I decided to aim for 65 g portions, which I was able to approximate using a #20 (1.6 fl.oz. or a scant 50 ml) disher.

Squashed dough balls
Before baking the dough balls, they should be squashed flat with the palm of one’s hand — it’s probably a good idea to moisten your hand before doing this. The cookies are baked in a 350°F (175°C) oven for about 16 minutes.

Second sheet of baked cookies, with some "runners"
The cookies cool on the baking sheet for about 10 minutes before being shifted to a wire cooling rack. In this second tray of cookies, you can see that some ended up with an excess of white-chocolate chunks and spread a bit more than is desirable. Here’s a close-up of an individual cookie.

Close-up of baked cookie


Nutrition Facts
Serving size: 1 cookie (65​g unbaked)
Servings per recipe: about 20
Amount per serving
Calories 382 Calories from fat 194
% Daily Value
Total Fat 22​g 34%
 Saturated Fat 11​g 53%
Trans Fat 0​g
Cholesterol 76​mg 25%
Sodium 127​mg 5%
Total Carbohydrate 27​g 9%
 Dietary fiber 3​g 11%
 Sugars 19​g
Proteins 6​g 13%
Vitamin A 18%
Vitamin C 0%
Calcium 12%
Iron 11%
Posted in Food | Tagged , ,

Recipe quick takes: Joanne Chang’s Coconut Macaroons

A few weeks ago, I did Joanne Chang’s macarons — or, as she called them in pre-macaron-craze days, “Almond Macaroons with Bittersweet Chocolate Ganache”. This week, I’m back with her macaroons — proper macaroons, or “Coconut Macaroons” as she calls them in her 2010 cookbook Flour (Chronicle Books; p. 122). Although my schedule for baking these was stretched out by travel and work events, everyone who tried one when I finally did bring them into the office thought they were very good examples of their type.

Making macaroons starts with some sort of dairy base; the most common recipes use sweetened condensed milk, but Chang’s recipe uses pastry cream instead — which unfortunately means that these are not gluten-free. Chang helpfully gives a cut-down pastry cream recipe, so we’ll start there:

Mise en place for pastry cream
The pastry cream is made from 120 g milk (I used low-fat because I don’t drink whole milk, and you can’t buy milk in such small quantities from my preferred dairies), two egg yolks, ½ tsp of vanilla extract, and a mixture of 50 g sugar, 20 g cake flour, and a pinch of kosher salt. The milk is scalded in a saucepan, while the flour-sugar mixture is whisked together with the egg yolks; the resulting mixture is then tempered with the hot milk before returning the whole mass to the stove to cook until it thickens to the texture of, well, pastry cream.

Pastry cream after cooking
The cooked pastry cream looks like this. Off heat, the vanilla is whisked in, and the pastry cream is then covered with plastic wrap (to prevent a skin from forming) and allowed to cool completely. (In some applications, the pastry cream would be sieved while still hot, to remove any bits of overcooked egg yolk, but macaroons have a rough texture where that would not be noticeable, and Chang does not call for the extra work.)

Mise en place for macaroons
Now for the main event: the macaroons proper. I took the “Doe’s Chocolate Chip Macaroons” option, given in a sidebar, of adding 165 g of semisweet chocolate chips (I used Guittard 46% semisweet chocolate baking chips). The other ingredients are the same regardless: the prepared and cooled pastry cream; six egg whites (the two left over from the pastry cream plus four more I took out of the freezer); 200 g of sugar; two 14 oz (400 g) packages of Baker’s “Angel Flake” sweetened shredded coconut; and another pinch of kosher salt (not shown). It is possible that there are other brands of sweetened shredded coconut, but I wasn’t able to find any. All of these ingredients are simply mixed together to make the macaroon dough.

Macaroon "dough" after 5 days in refrigerator
I, um, ate some of the dough before it was baked. (Why is it that raw eggs, which are generally disgusting, suddenly become edible when mixed with sufficient quantities of sugar?) But due to my travel schedule, I could not bake the macaroons immediately in any case, so I covered the bowl with plastic wrap and put the dough in the refrigerator until I got back — Chang says this dough will last for five days before baking.

Macaroons ready to bake
I portioned the macaroons using a #16 (2 oz or ¼ cup; 60 ml) disher onto a parchment-lined baking sheet. I only got 18 macaroons, but the recipe says it should make 24 — either I managed to eat 6 macaroons worth of dough (shudder) or I was a bit too generous with the disher. For the nutritional analysis shown below, I assumed that you will adjust the size to get closer to the specified yield. (If I do this again, I should remember to weigh the dough so I can double-check my portioning!)

Baked macaroons
The macaroons are baked in a 350°F (175°C) oven until golden brown, about 33 minutes in my oven. I could have left these in a bit longer, but I was more concerned about the tops overbrowning than about the sides not being browned enough. Here’s a close-up of an individual unit:
Close-up of individual macaroon


Nutrition Facts
Serving size: 1 macaroon
Servings per recipe: about 24
Amount per serving
Calories 249 Calories from fat 123
% Daily Value
Total Fat 14​g 21%
 Saturated Fat 11​g 56%
Trans Fat 0​g
Cholesterol 16​mg 5%
Sodium 136​mg 6%
Total Carbohydrate 29​g 10%
 Dietary fiber 3​g 11%
 Sugars 26​g
Proteins 6​g 11%
Vitamin A 1%
Vitamin C 0%
Calcium 1%
Iron 3%
Posted in Food | Tagged , , | 1 Comment

Recipe quick takes: Joanne Chang’s “Homemade Oreos”

Another week, another quick review of a Joanne Chang cookie recipe. I have to put “Homemade Oreos” — or perhaps “Homemade ‘Oreos'” — in quotation marks, because these sandwich cookies really don’t have anything to do with Oreo brand sandwich cookies except in a very abstract way (and how hasn’t she gotten sued by Mondelez International, anyway?). For one thing, they’re huge. For another, they’re made from food. And people who hate Oreo brand sandwich cookies actually like them! Like last week’s effort, this recipe comes from Chang’s first cookbook, Flour (Chronicle Books, 2010; p. 134); the procedure and parts list are both a bit more complicated than the almond macaro(o)ns, but still pretty easy. These are icebox cookies (as the sainted Maida Heatter would say), so expect to take parts of two days to bake.

Mise en place for cakes
We start with the cakes (biscuits, however you want to say it). The “wet team” consists of two sticks (225 g) of unsalted butter, which will shortly be melted so there’s no need for it to soften; 150 g of granulated sugar; one large egg; 1 tsp vanilla extract; and, unusually, 200 g of semisweet chocolate chips — I used Guittard — which will also be melted (separately from the butter). The “dry team” is 210 g all-purpose flour, 90 g Dutch-process cocoa, 1 tsp kosher salt, and ½ tsp baking soda.

Melted chocolate-butter mixture
As mentioned, both the butter and the chocolate chips are melted (separately) and allowed to cool somewhat. The sugar is then combined with the butter (this allows it to dissolve in the water phase of the butter — don’t try to substitute a different fat!), and then the melted chocolate chips are stirred in. Finally, the remaining wet ingredients (egg and vanilla) are whisked in; by this point the mixture should be cool enough not to scramble the egg.

Dry ingredients mixed
All the dry ingredients are just sifted together (or whisked, or stirred, however you like so long as they’re well combined) in a separate bowl.

Dough cooling in mixing bowl
After adding the dry team to the wet, it takes a while to mix them together thoroughly, as this is a fairly stiff dough. Once it is mixed, the dough needs to cool to warm room temperature so that it can be formed into a “log” — but if you’re like me, you’ll have trouble stopping yourself from just pinching off pieces of the warm batter and eating it as is; I estimate I ate 3–4 cookies’ worth (6–8 unassembled cakes) along the way.

"Log" of dough
Once cooled, the dough is formed into a rough “log” on a sheet of parchment, and then rolled into a more even cylindrical shape. The recipe says it should be 2½ inches (65 mm) in diameter, but I only managed about 2″ (50 mm). I think they came out OK anyway, with fully assembled serving sizes more than sufficient for my audience.

At this point, the still-soft cylinder of dough goes into the refrigerator (still wrapped in parchment) to solidify for two hours. Chang recommends rerolling the cylinder every 15 minutes so it doesn’t develop a flat spot where it sits on the shelf. Once fully solid, it can be baked or wrapped in plastic wrap and refrigerated for up to a week. Since many cookies benefit from an overnight rest in the fridge, I resolved to pick up the process the next day.

Circles of unbaked dough on cookie sheet
Fast-forward to Sunday afternoon. I’ve preheated the oven to 325°F (160°C) and lined a couple of baking sheets with parchment sheets. The cylinder of dough is removed from the refrigerator and sliced into approximately ¼-inch (6 mm) rounds — I gave up on using the ruler after the first few, so mine were a bit less even than one would like. (The obvious tool here is either a commercial guillotine cutter, or some sort of scribe that could make lots of scratches in parallel, ¼″ apart. I assume in the Oreo factory they use a more liquid batter and a depositor.) For slicing the rounds, I used a chef’s knife, working quickly and rotating the “log” from time to time so that the cutting pressure would not result in a flat spot. (Which as you can see didn’t entirely work!) Maybe it would have been better to cut the cylinder in half and slice two at a time.

Baked cakes cooling on sheet
In my oven it took 21 minutes to bake the cakes until just firm; as you can see, they don’t spread much. On the two baking sheets I got a total of 26 cakes (as opposed to the 32 I should have had per the recipe, had I not eaten so much of the dough and had I done a better job of slicing evenly.)

Mise en place for filling
The filling for these sandwich cookies is the standard so-called “American buttercream”, which isn’t a buttercream at all, but is made from butter (1 stick, 115 g), confectioner’s sugar (230 g), vanilla (1 tsp), and milk (1 tbl). This is all made by the usual procedure, which I won’t go into here. Chang adds a pinch of salt to the filling as well; I dissolved the salt in the milk before adding it to the faux-buttercream to ensure that it would be evenly distributed.

13 fully assembled "Oreos"
About a tablespoon of the frosting is used to fill each sandwich cookie. (Or use your best judgment!) Since I was short on the cakes, I had some frosting left over (but not for long). As you can see, these cookies are several times larger than an Oreo brand sandwich cookie, but they do at least share the traditional color scheme.

One "Oreo"
I brought a bunch of these into work on Monday and they were devoured. Everyone who tried them loved them — even Sue Felshin, who rarely likes things with the sort of sweet sugary frosting that these cookies use as a filling, enjoyed hers (although she commented that the biscuits were a bit salty, so perhaps you might cut that teaspoon of kosher salt in half). Of course, the down side of these being so huge is that they have a lot more calories (and sugar, and fat) than the genuine Oreo brand sandwich cookie.


For comparison with the figures below, regular Oreos have about 53 kcal per unit, with 2.3 g fat and 4.7 g sugar; “Double Stuf” Oreos are 70 kcal per unit, 3.5 g fat and 6.5 g sugar. Most specialty Oreo flavors follow the “Double Stuf” formula. (The thoroughly disgusting “Mega Stuf” Oreos are 90 kcal each, 4.5 g fat and 9.0 g sugar.)

Nutrition Facts
Serving size: 1 sandwich cookie
Servings per recipe: about 16
Amount per serving
Calories 369 Calories from fat 185
% Daily Value
Total Fat 21​g 33%
 Saturated Fat 13​g 63%
Trans Fat 0​g
Cholesterol 57​mg 19%
Sodium 112​mg 5%
Total Carbohydrate 45​g 15%
 Dietary fiber 3​g 12%
 Sugars 30​g
Proteins 5​g 9%
Vitamin A 12%
Vitamin C 0%
Calcium 2%
Iron 9%
Posted in Food | Tagged , , , | 1 Comment

Recipe quick takes: Joanne Chang’s Almond Macaroons with Bittersweet Chocolate Ganache

This is just about the simplest baking recipe I’ve ever done here, to the extent that even an in-depth review isn’t going to be longer than a “quick take”. But before that, a little digression on naming.

In recent years — most notably in the past two or three years — a French bakery item has made it to these shores under the name macaron. These sandwich cookies are typically made from almond paste and egg white, about 30–40 mm in diameter, and are filled with jam, frosting, or chocolate. It is apparently a Big Thing to have them develop “feet” in baking. In American English usage, macaroon has generally meant a mounded, single-piece cookie made from coconut, sugar, and egg white, rather than almond, typically about as tall as it is wide, sometimes dipped in chocolate or with chocolate chips added. Many Americans would be astonished to be offered something called a “macaroon” that was not made with shredded coconut. But historically, they are the same thing; “macaroon” is a corruption of “macaron”, borrowed into English from Middle French circa 1610. The French word is in turn derived from regional Italian maccarone — that is, macaroni. The treats I’m about to describe, from Joanne Chang’s Flour (Chronicle Books, 2010; p. 130), are sandwich cookies, with the cakes made from almond paste and egg white, just like the fashionable macaron, but they are larger, formed by the drop method rather than with a piping bag, and coarser in texture. Flour was published just before macarons became trendy, and the recipe title calls these cookies “macaroons”; Chang’s follow-up book, Flour, too, contains a macaron recipe, so titled. But when I handed these cookies out at the office, I called them macarons, because to me, the defining characteristic is not the trendy colors or the size, but the fact that they’re sandwich cookies made from almond paste — I would reserve the name “macaroon” for the sort of cookies made from coocnut and often seen in these parts as a flourless dessert for Passover.


Mise en place
The mise for these is incredibly simple. The heavy cream (half a pint ≈ 240 ml) and the chocolate (Valrhona Caraïbe, 225 g, chopped) are used to make the ganache filling. The remaining ingredients go into the almond paste: 520 g blanched whole almonds (I used store-bought this time rather than blanching them myself); 540 g sugar; 6 large egg whites (I had a bunch of leftover egg whites in the freezer from previous baking projects, so no fresh yolks were wasted); 2 tsp almond extract to punch up the almond flavor; and ½ tsp kosher salt rounds out the list.

Raw macaron batter on a baking sheet
This recipe takes place almost entirely in the food processor, and comes together in just a few minutes. The blanched almonds are first ground in the food processor to a fine powder (but not to a paste). A cup of the ground almonds is reserved, and then the remaining almonds are ground together with the sugar for 15 seconds before adding the egg whites and processing for another 30 seconds to combine. The mixture is transferred to a bowl, where the reserved ground almonds, salt, and almond extract are folded in, and then the batter is dropped by tablespoons onto parchment-lined baking sheets to make 40 cakes. (Mine were a little uneven in size and I ended up with 41 cakes — I just ate the extra!)

Just-baked macarons
After baking in a 350°F (175°C) oven for 23 minutes, they are ready to come out and cool on a rack, still on the baking sheet, for another half an hour. When done they should be just slightly browned around the edges. While the cakes are cooling, the ganache is made in the usual way by pouring scalded cream over the chocolate, letting it melt, and then whisking until smooth. I found that I had to refrigerate the ganache to get it set up enough to fill the cookies.

Freshly filled macarons
Once the cakes are completely cool, they are paired up in roughly matching sizes and shapes, and a sufficient quantity of the cooled ganache is applied to fill them. Chang says to use about a tablespoon of ganache, but also says that there may be some left over; I say to use enough to cover the entire bottom of the cake, and don’t worry too much about the exact measurement here. After filling, they can be stored at room temperature in an air-tight container for two or three days.

Filled macaron cross-section
I cut one in half to show the texture of the crumb. All of my tasters loved these, including a couple of people on gluten-free diets who can’t normally try my baking, except for one person who didn’t like them, and thought that the chocolate flavor of the filling wasn’t prominent enough.


Nutrition Facts
Serving size: 1 sandwich cookie
Servings per recipe: 20
Amount per serving
Calories 373 Calories from fat 202
% Daily Value
Total Fat 23​g 35%
 Saturated Fat 7​g 33%
Trans Fat 0​g
Cholesterol 16​mg 5%
Sodium 33​mg 1%
Potassium 180​mg 5%
Total Carbohydrate 38​g 13%
 Dietary fiber 4​g 15%
 Sugars 32g
Proteins 8​g 16%
Vitamin A 3%
Vitamin C 0%
Calcium 7%
Iron 7%
Posted in Food | Tagged , , , , , , | 3 Comments

Other people’s recipes: two banana bread recipes from Joanne Chang

A number of the recipes in Joanne Chang’s cookbook Baking with Less Sugar (Chronicle Books, 2015) are revised versions of bakery favorites originally published in Flour (2010). “Flour’s Famous Banana Bread” is a justly popular recipe from Chang’s Flour Bakery and Cafe which originally appeared in Flour (p. 86); the 2015 edition is “Better than Flour Famous Banana Bread” (p. 40). For Memorial Day, I decided to bake both recipes, and I brought them in to work the following day to taste side-by-side. Tasters found the two recipes difficult to distinguish, with those expressing a preference evenly split between the original and Less Sugar versions. The procedure for making both is almost exactly the same; they differ primarily in ingredient proportions and cooking time. Here’s how it went:

Seven bananas
We start out, of course, with bananas. I find it fairly difficult to buy truly ripe bananas in the supermarket, so I generally buy green ones a week early and let them ripen on the kitchen counter until I’m ready for them. If any show signs of going off prematurely, I stick them in the freezer — frozen bananas are no longer useful for eating but just as good as fresh for any application requiring mashed banana.

Two different 75g portions of walnuts
Both recipes require 75 g of walnuts, but differ in procedure. The original recipe calls for walnuts which are toasted and then chopped; the Less Sugar recipe calls for chopped walnuts which are subsequently toasted. That’s easy enough to manage with two quarter-sheet pans, in a 325°F (160°C) oven for about nine minutes, shaking the pans about halfway through.

Two buttered and floured 9″×5″ loaf pans
Both recipes make a single 9″×5″ (23 cm × 13 cm) loaf, which (after baking) makes nine generous or twelve moderate portions. I broke with my usual practice and used the traditional butter-and-flour lubrication technique for these rather than baking spray, just because.

Mise en place for original recipe Mise en place for "Less Sugar" recipe

On the left, the mise en place for the original recipe. On the right, the mise for the Less Sugar version. Here’s how they stack up in tabular form:

Ingredient Original recipe Less Sugar recipe
chopped, toasted walnuts 75 g 75 g
all-purpose flour 210 g 175 g
baking soda 1 tsp ½ tsp
ground cinnamon ¼ tsp 1 tsp
kosher salt ½ tsp ½ tsp
large eggs 2 3
granulated sugar 230 g 75 g
canola oil 100 g 70 g
ripe bananas 340 g (as mashed) 3 large
crème fraîche 30 g 90 g
vanilla extract 1 tsp 1 tbl

Eggs and sugar at ribbon stage
The process starts by what I’ve come to think of as the “mayonnaise method” — a variant of the “muffin method” used for many quickbreads in which the eggs and sugar are first beaten to ribbon stage, about eight minutes using a handheld mixer. This photo shows the original recipe proportions after about five minutes of beating.

Eggs-sugar mixture with oil and wet ingredients mixed
Once the eggs have made a sufficiently sturdy foam to handle it, the construction proceeds by slowly drizzling in the vegetable oil (hence the “mayonnaise method”) so that it emulsifies with the eggs. Then the remaining wet ingredients — bananas, vanilla, and crème fraîche — are mixed together and then stirred into the egg-sugar-oil mixture, working quickly so as not to deflate the egg foam, and finally the remaining dry ingredients are combined and folded in by hand. The Less Sugar version departs from this slightly by par-cooking two of bananas in the microwave after mashing them; the result is combined with the third mashed banana, raw, and the crème fraîche and vanilla as before — mixing the par-cooked banana with the other ingredients cools it down sufficiently to add to the egg foam without fear of curdling.

Finished original-recipe batter in loaf pan "Less Sugar" batter in loaf pan

Once again, the original recipe is shown on the left and the Less Sugar version on the right — note how much higher the revised batter comes up in the pan. This won’t turn out to be a problem because the Less Sugar version also has less leavening, depending more on the egg foam for its volume and texture.

Fully baked original-recipe loaf Fully baked "Less Sugar" loaf

The original recipe calls for 60–75 minutes of baking time, which leads to a more caramelized appearance than the Less Sugar version at only 50–60 minutes. Both are baked at 325°F (160°C), although I did not attempt to bake them simultaneously. When done (the finished bread should spring back when pressed in the center), the bread must cool in the pan for about 30 minutes. The recipe here says “at least 30 minutes”, but I wouldn’t advise leaving it much longer than that, because the steam released by the cooling bread can condense and make the bottom of your loaf soft or even soggy if left in the pan.

Both loaves side by side on cooling rack
Finally, here the two loaves are, side by side. Once cool, I wrapped them tightly in plastic wrap for the trip to the office on Tuesday.

As I mentioned in the intro, tasters were split on which one they preferred. Those who liked the original version better noted its texture, the slightly caramelized flavor, and moistness; those who preferred the revamped recipe commented on its lightness and banana flavor.


Nutrition Facts
Serving size: 1/12 loaf
Servings per recipe: 12
Amount per serving
Original recipe Less Sugar recipe
Calories 296 from fat 123 249 from fat 123
% DV % DV
Total Fat 14g 22% 14g 22%
 Saturated Fat 2g 9% 3g 13%
Trans Fat 0g 0g
Cholesterol 33mg 11% 53mg 18%
Sodium 162mg 7% 118mg 5%
Potassium 114mg 3% 141mg 4%
Total Carbohydrate 39g 13% 26g 9%
 Dietary fiber 2g 7% 2g 7%
 Sugars 22g 11g
Proteins 5g 9% 5g 9%
Vitamin A 2% 5%
Vitamin C 4% 5%
Calcium 1% 2%
Iron 3% 4%
Posted in Food | Tagged , , ,