Month: June 2021

Strawberry almond torte

Strawberry almond torte

This is a refreshing summer dessert that can serve 10 or so people, and while it looks rather elaborate, it really is just strawberries in whipped cream layered between meringues and iced with a buttercream frosting mixed with almond crunch. The only time-consuming part is making the meringues, and most of the time is waiting for them to bake. This recipe is adapted from one we found in the Sunday NY Times many years ago.

Torte layers

  • 5 egg whites at room temperature- twice
  • 1/8 tsp cream of tartar – twice
  • 1 cup blanched almonds, finely ground – twice
  • 1 cup confectioners’ sugar – twice
  • Baking parchment

Blanched almonds

“Blanched almonds” means almonds with the skins removed. You can buy them that way or you can remove them yourself, a bit more cheaply. For this entire recipe, we used 2 6-oz bags of whole almonds, which amount to about 2 ½ cups.

To blanch the almonds, bring a saucepan of water to a boil and drop in all the almonds. Let them boil for just one minute (no longer!) and then drain them in a strainer and cool them with running water.  You will find that you can pop the skins off the almonds by pinching the thick end of the almond. The almond should pop right out of the skin. You can even do two or three at a time.

When the almonds are cool, chop them up in a food processor as fine as you can. Reserve ½ cup for the almond crunch below, and use the remaining chopped almonds to make the torte layers.

Making the torte layers

In this recipe, we will make 4 layers at a time and then repeat to end up with 8 layers.

  1. Preheat the oven to 350˚ F.
  2. Put the 5 egg whites in a mixer bowl with the 1/8 tsp of cream of tartar and beat until the egg whites are stiff and dry. Reserve 4 egg yolks (once) to use in the frosting below.
  3. Fold in 1 cup of confectioners’ sugar and 1 cup of the chopped almonds.
  4. Cut 4 squares of baking parchment to 8” x 8”. The roll of Reynolds parchment is only 15” wide, so our “squares” were actually 8” x 7.5”. Place the parchment squares on two cookie sheets and divide the meringue mixture equally among them.
  5. Spread the meringue to near the edges of the squares.
  6. Bake for 16 minutes or more. You want the meringues to be well browned. We found that varied a bit with the thickness of the meringue but was closer to 18 minutes.
  7. Immediately after removing the meringues from the oven, use a spatula to flip them over onto a wooden counter, and use a small spreading spatula to peel the parchment off the meringues. You need to do this right away while the meringues are warm. Don’t worry if there are some small holes.
  8. Stack the meringues on a plate, separated by wax paper.
  9. Repeat to make 4 more meringue layers.

Almond crunch

  • ½ cup blanched almonds
  • ½ cup sugar
  • Place the almonds (chopped or not) in a small iron skilled along with the sugar.
  • Heat until the sugar melts and turns golden brown. Don’t let it burn.
  • Pour the hot sugar mixture into a buttered pan and allow it to cool.
  • When cool, put the solid sugar-almond mass in a food processor and grind it to a powder.
  • Set aside to use in the frosting.

Filling

  • 1 quart strawberries
  • Sugar
  • 1 tsp unflavored gelatin
  • 1 ½ Tb cold water
  • 1 ½ cups  heavy cream
  • ½ cup sliced or slivered almonds.
  1. Reserve 4 large strawberries for decoration.
  2. Slice the berries, sprinkle with sugar and set aside.
  3. Mix the water and gelatin in a small pan, and heat until the gelatin dissolves.
  4. Beat the cream in a mixer until it is fairly firm.
  5. Then dribble in the gelatin solution and mix through.
  6. Fold in the sliced berries

Frosting

  • ½ cup sugar
  • ½ cup water
  • 4 egg yolks, beaten in a mixer bowl
  • ½ lb softened sweet butter
  1. Put the sugar and water in a saucepan and heat until it is dissolved.
  2. Continue heating at a slow boil until the solution reaches 238˚ F, the “soft ball” stage.
  3. Put the egg yolks in a mixer, and beat them and then slowly add the syrup to the yolks while continuing to beat.  
  4. Beat until cool
  5. Gradually beat in the butter.
  6. Stir in the powdered almond crunch and transfer the mixture to a small bowl and refrigerate until of a spreading consistency.

Assembly

  1. Place one of the better meringue layers on a cake cardboard or plate.
  2. Spread with around one-seventh of the strawberry-cream mixture.
  3. Continue adding layers and spreading cream and top with the last meringue layer.
  4. Chill the layers for an hour.
  5. Take the layers out of the fridge, place on a cake turntable and, using a sharp knife, cut off any uneven pieces of meringue or berries.
  6. Spread the frosting along the top and then along the sides. If the berry mixture begins to ooze out, return the layers to the refrigerator, and centime later.
  7. Decorate the sides with the slivered or slice almonds and top the torte with large pieces of  strawberries.
  8. Chill for a few hours and serve cool to your adoring fans.

We recommend slicing with a sharp knife so that the layers are distinct.

Chicken with forty cloves of garlic

Chicken with forty cloves of garlic

Richard Olney was an American Painter who moved to France in 1951, and became enamored of French food while in Paris. He moved to a farmhouse in Provence, which he essential built and rebuilt by hand and wrote some of the seminal cookbooks on French country cooking. His French Menu Cookbook was his first big success, and he bought an expensive French stove with some of the proceeds.  His books stress using local ingredients and discuss pairing each recipe with wines.

In one of the most fascinating intersection of chefs as cookbook authors, Luke Barr’s book Provence, 1970 describes a year when Julia Child, Simone (Simca) Beck, MFK Fisher, James Beard, cookbook editor Judith Jones and Richard Olney all visited together in Provence, cooking, sharing ideas and changing the course of food in America.

This recipe for Chicken with 40 Cloves of Garlic is Olney’s and is a jumping off place for all sorts of variations. Writing in the New York Times, Dorie Greenspan describes this dish as a “no-matter-what recipe” that young cooks can count on to always work. She also proposes some interesting variations, noting that you can add wine, more kinds of vegetables among other things.

The essence of Olney’s recipe is chicken, herbs, and four heads of garlic cloves, all cooked together in a casserole until only a gentle hint of garlic flavor remains. We have described the details of how garlic flavor develops and noted that you get very little of that flavor if you don’t cut into each clove. While Olney and other chefs may not have known the botany of garlic, chefs in general knew the properties of garlic and how to obtain them, by mincing the clove or, as this recipe does, simply using them cloves whole.

The recipe calls for a whole chicken or four drumsticks and thighs. Comments on Greenspan’s article suggest you remove the chicken skin, since it doesn’t become crisp in this recipe and would just hang around looking floppy.

In the accompanying photos, we made only half a recipe, with two chicken legs and used only 2 heads of garlic.

  • 1 whole chicken, cut up, or 4 chicken legs cut into thighs and drumsticks, skin removed.
  • 2/3 cup olive oil
  • 4 heads of garlic, cloves separated but unpeeled. Discard any loose hulls.
  • Salt, pepper
  • 1 tsp mixed dry herbs (thyme, oregano, savory)
  • 1 large bouquet garni, large branch celery, parsley, bay leaf, leek grrens and lovage if available, tied with string.
  • Flour and water for dough
  1. Cut up the chicken, remove the skin and place the pieces in a casserole.
  2. Add the olive oil, salt and pepper, and the herbs, chopped if fresh, and mix it all together with your hands.
  3. Place the bouquet garni in the center of the chicken pieces, and push the garlic cloves all around between the chicken pieces.
  4. Put about 2-3 cups of flour in a bowl and add water and a few drops of olive oil to make a dough.
  5. Roll out the dough large enough to cover and seal the casserole.
  1. Moisten the rim of the casserole and press the dough all around the rim.
  2. Cover the casserole and bake it at 350˚ F for 1-3/4 hours.
  3. Remove the lid.
  4. Some suggest serving the sealed casserole and breaking through the dough seal at the table. Actually, you almost lift it off whole. It isn’t really to be eaten.
Finished dish with dough seal removed

Serve with crusty French bread, grilled or toasted if you prefer. Take a couple of garlic cloves with each serving and squeeze them with a fork to get the soft, cooked garlic out to spread on the bread. You will find it delicious, slightly sweet and not garlicky at all!

Garlic Fries: great even outside the ballpark

Garlic Fries: great even outside the ballpark

We haven’t made garlic fries in some years, so we looked at published recipes to see what people are doing. As far as we could tell, they all got it wrong!  All the recipes we found suggested mincing the garlic and the sauteing it to “reduce the garlic flavor.” Duh! Why no just use less garlic? Those recipes also suggest pouring the cooking oil over the fries along with the dis-flavored garlic, making a greasy mess.

The problem is that cooking the garlic can easily make it nearly tasteless. You could throw on some rice instead!  And further, since garlic has a lot of sugar in it, it is very easy to burn it!

As we noted in our previous article, garlic develops its flavor when you cut it up, and loses its flavor when heated.

So, we went back to our own recipe from years ago:

  • 5-6 cloves of garlic
  • 4-6 sprigs of Italian parsley
  • 2-3 Tb Diamond Kosher salt
  • French fries (frozen ones are OK)
  1. Mince the garlic to small pieces and then chop it with the parsley.
  2. Chop both into the pile of salt until well mixed.
  3. Toss over freshly made French fries and mix well. Let any excess fall off when you move them to a serving dish.

Serve at once.

Not much trouble here, and they go as well with hamburgers as they do with baseball. Note that we chose Diamond Kosher salt of Morton’s, because the salt crystals are smaller. And while we have a wooden counter top, we chose to chop this up on a cutting board, making cleanup easier.

To get the garlic smell off your hands, rub them with salt before washing them.

All about garlic

All about garlic

The garlic bulb is a really unusual plant. Each clove in the garlic head is actually a single swollen leaf, according to Harold McGee. Garlic’s strong taste and smell is actually a protection the plant evolved: when an animal bites into it, the strong taste is released, repelling the animal.

A whole garlic clove has only a mild taste and aroma, but when you cut into it, the enzyme alliinase is released from one part of the bulb and reacts with the compound alliin (a derivative a the amino acid cysteine) in another part of the bulb to form allicin, which has the characteristic garlic aroma and taste. Note that the plant evolved this defense to keep away animals, and garlic is actually quite toxic to dogs and cats: you should avoid letting any get into their food.

The alliinase enzyme is quite sensitive to temperature. Students of Professor John Milner at Penn State carried out a simple experiment where they placed garlic cloves in a microwave oven for one minute. While the garlic cloves appeared unchanged, analysis showed that the enzyme had completely disappeared after heating. They noted that other types of heating are sure to give the same results.

So this means that you need to chop the garlic before heating or cooking it, and that you should let the chopped garlic stand for a few minutes before adding it to the food you are preparing, to allow time for the enzyme to work to develop the flavor.

Garlic has much more sugar in it (fructose) than onions do, and is thus more prone to burning. Cook it at low temperatures when sautéing it, or add it directly to a liquid.

These two facts explain why dishes like Chicken with 40 Cloves of Garlic are so mild. The garlic cloves are never cut up: and the alliinase is destroyed by heating soon after the cloves are added to the pot.

Always buy fresh heads of garlic. Avoid the ones in little boxes, as they may be very old. You should also avoid bottled peeled garlic cloves in oil, as they are prone to develop botulism, according to McGee. And do not refrigerate garlic, which also will reduce the flavor.

Garlic peeler

When peeling garlic, you can use the simple rubber garlic peeler tube shown above, or you can use Jacques Pepin’s technique, and just cut a small slice from the root end of the clove. This will free the skin and it will just about come apart in your hand.  You can also just crush the garlic and pick out the peel from the rubble.

And how do you get that garlicky smell off your hands? Rub them with salt and then wash as usual.

See also

  1. The chemical weapons of onion and garlic
  2. Is garlic toxic to pets?
  3. Science News: Garlic benefits- it’s all in the preparation
  4. Chicken with 40 Cloves of Garlic
  5. Harold McGee: On Food and Cooking
  6. Jacques Pepin: Essential Pepin

Writing a calculator program in Python

Python based calculator using tkinter

Many computer courses in Python suggest writing a calculator program in Python to develop both your logic and user interface skills. In this article we discuss some more advanced concepts you might use to write a good calculator program with a minimum of effort. We are not, however, proposing to do your entire assignment, but only to give you some helpful pointers that may make your program easier to write well.

If you look at our calculator interface, you quickly note that it is really a 5 x 4 matrix of buttons, but actually 6 x 4 counting the value display line, which actually just a Label field. So even if you haven’t bothered to learn about layout managers (there are only two in tkinter) now would be a good time to start.

It is also helpful to note that all of the numerical buttons (all the gray ones) have the same function: they put a number into the display line. The only exception is the period button which also has to check to make sure that only one period gets added to the number.

Command buttons

The trouble with an interface using all these buttons is deciding where the clicks for all these buttons go. One really simple solution is to put the command to be executed right inside the button.  Here is the interface for such buttons:

# abstract class defines command interface
class DButton (Button):
    def __init__(self, master, **kwargs):
        super().__init__(master, command=self.comd, **kwargs)
   
    def comd(self):
        pass

This is an abstract class, in that the comd function just has a place holder pass statement. But if we derive buttons from DButton, we can fill in each comd method with actual code as we see below. All of the buttons in this example are derived from DButton and each derived button has its own comd code.

In all cases, these buttons will not know much about the value display or the state of the period or anything else. Instead, we create a Mediator class that knows about the value display and receives commands from all the buttons. So, our Numeric button is just the following: mostly just setting up the font and color:

class NumButton(DButton):
    def __init__(self, master, med, **kwargs):   
        super().__init__(master, width=2, fg='white', 
                       bg="#aaa", **kwargs)

        butnfont = tkFont.Font(family='Helvetica',size=16, weight='bold')
        self['font'] = butnfont
        self.med= med         # save copy of Mediator

   

 Our comd function calls the Mediator’s numClick method and sends it the label of the button, which is the text representing the actual number we want to add to the value display.

def comd(self):
        self.med.numClick(self['text']) # gets number from text label 

At the top of the list of widgets we create the top label, and then we create the Mediator and pass it that label. The Mediator is the only class that knows about the contents of that label, and it receives calls from the various number buttons to add that text to the label. In this method it adds a leading space, which could be changed to a minus sign if you change the numbers sign, and then just appends numbers to the label:

# Any number is clicked
def numClick(self, text):
    if self.first: # if first char clear the zero
        self.setlabelText(" ") # leading space
        self.first = False
    st = self.getLabelText() + text
    self.setlabelText(st)

So, we create all of the number buttons in a grid as shown in the figure. Here is a bit of that code for buttons 7, 8 and 9. They are placed in grid row 2 in columns 0, 1 and 2.

but = NumButton(root, med, text='7')
but.grid(row=2, column=0, padx=1, pady=1)
but = NumButton(root, med, text='8')
but.grid(row=2, column=1, padx=1, pady=1)
but = NumButton(root, med, text='9')
but.grid(row=2, column=2, padx=1, pady=1)

To illustrate the structure of this part of the program, the Mediator communicates with the label and the buttons all communicate with the Mediator:

In a similar fashion, all the other buttons are command buttons that tell the Mediator what to do. The C and CE button clear all the data and the CE buttons just clears the text in that top label.

Clicking one of the operation buttons (+, -, *, or / ) tells the program that the current number is done and that a new one will start so that the two numbers needed to carry out that operations get created. You should store each of those in some sort of array or stack along with the operation symbol. Usually this array can be stored right in the Mediator class. Then, when the Equals sign is clicked, you carry out the calculation.

If you enter

2 + 3

the Equals sign button should combine those and display “5.0”. (We convert all of them to floats for simplicity.)

This will work for more than two numbers, and combining them left to right mainly works:

5 * 3 + 2

will correctly display 17.  However, if you remember the priority rule My Dear Aunt Sally, you carry out multiplication and division before addition and subtraction, and simple to right combining of the data will produce the wrong answer for

2 + 5 * 3

This should still result in 17, but unless you remember the priority rule, you will get the wrong answer.

Since this simple exercise is to construct a simple calculator, limiting it to two values is a reasonable first approximation. Handling this priority issue is left as an exercise for the reader, but obviously you have to find a way to perform multiplication and division first. Most likely, you will use the Python eval() function.

Using a Dictionary to choose operations

One other clever trick you might want to consider using is finding a way to choose the function to be carried out based on which of the operation buttons you select. You can use a simple dictionary which returns the function you want to carry out:

funcs = {"+": self.addfun,
         "-": self.subfun,
         "*": self.multfun,
         "/": self.divfun
         }
 

Then, you can use the text of the operation sign to get the right function:

func = funcs.get(sign) # will be one of four symbols
sum = func()           # execute that function

Conclusions

By deriving new classes from the Button class, you can make a really nice-looking calculator interface in a grid layout of 6 x 4, where the top line is the label and the 5 x 4 represents the control and numeric buttons. All of the buttons benefit from having a Command interface, and all of the numeric buttons can call the same routine since they all put numbers into the top label. The Dot button differs only in that you must limit it to one decimal point per number.

The major class for handling all these button clicks is called a Mediator, and it is the only class that has access to the top data line display.

You keep the various numbers and operations that the user enters in an array or stack, and you can use the dictionary method to selection the function to carry out the right operation. Carrying out computations of more than two numbers means remembering My Dear Aunt Sally to choose the operations to carry out first.