Category Archives: cooking

On this page:

Using Emacs Org for grocery lists and batch cooking

We like preparing our meals in bulk. Buying groceries and cooking up a storm on the weekends means that we can grab quick and healthy lunches from the fridge or freezer, enjoy a variety of dinners during the week, and focus on other things that we want to do in the evenings.

I was looking for a menu planner and grocery list maker to help us plan and execute these batch cooking sessions more efficiently. In particular, I wanted something that could sort the ingredients for preparation, too. I like preparing ingredients for all the different recipes before I start cooking. If several recipes call for garlic, I might as well chop a lot of garlic in one session instead of breaking out the chopping board for each recipe.

I tried several menu planning and grocery list apps, but I wasn’t happy with any of the ones I came across. I like using Emacs for as much as possible, so I figured that I should give it a try. Here’s what I did and how it worked out.

I created an Org file for my recipes. In this plain-text outline, I created sections for my plan, shopping list, preparation tasks, and recipes. Under recipes, I created TODO items and scheduled them. Here’s an example entry:

** TODO Colorful bulgur salad
   SCHEDULED: <2012-06-19 Tue>

http://allrecipes.com/recipe/colorful-bulgur-salad/

| 1/2 cup        | bulgur wheat     |                    | [[Colorful bulgur salad]] |
| 1/2 cup        | chicken broth    |                    | [[Colorful bulgur salad]] |
| 1 small        | cucumber         | seeded and chopped | [[Colorful bulgur salad]] |
| 1              | tomato           | chopped            | [[Colorful bulgur salad]] |
| 1              | carrot           | shredded           | [[Colorful bulgur salad]] |
| 3              | green onions     | thinly sliced      | [[Colorful bulgur salad]] |
| 3 tablespoons  | fresh lime juice |                    | [[Colorful bulgur salad]] |
| 3/4 tablespoon | chili powder     |                    | [[Colorful bulgur salad]] |
| 1 pinch        | garlic powder    |                    | [[Colorful bulgur salad]] |

I reformatted each recipe to fit this format, with columns for quantity, type, preparation, and recipe link. After I chose several recipes, I copied the ingredient lists into my preparation section and my shopping section. In the shopping section, I deleted the lines for ingredients I already had or could skip. I used org-table-sort-lines to sort the table by the second column, which gave me this list:

| 1 bag              | chicken legs and thighs |                                                        | [[Arroz caldo]] |
| 2 small or 1 large | cucumber                | chopped                                                | [[Gazpacho]] |
| 1 small            | cucumber                | seeded and chopped                                     | [[Colorful bulgur salad]] |
| 3                  | green onions            | thinly sliced                                          | [[Colorful bulgur salad]] |
| 1                  | red onion               | cut into 1" pieces                                     | [[Shrimp kebabs]] |
| 1 pound            | shrimp                  | peeled and deveined                                    | [[Shrimp kebabs]] |
| 6 - 8              | tomatoes                | chopped (Roma or plum are best; Don't lose the juice!) | [[Gazpacho]] |
| 1                  | zucchini                | seeded and cut into 1" pieces                          | [[Shrimp kebabs]] |

It wasn’t sorted by aisle, but that was easy to do when I copied the list onto a recycled envelope. If I find myself using this a lot, I might write an Emacs Lisp function to gather the tables and sort the rows by aisle.

Anyway, shopping list in hand, we picked up our groceries in about ten minutes last Saturday. The next day, I looked at my prep list:

|                    | basil                                  | chopped                                                | [[Gazpacho]]              |
| 1/2 cup            | bulgur wheat                           |                                                        | [[Colorful bulgur salad]] |
| 1 tbsp             | butter                                 |                                                        | [[Bubble and squeak]]     |
| 2 tbsp             | canola or peanut oil                   |                                                        | [[Teriyaki tofu]]         |
| 1                  | carrot                                 | shredded                                               | [[Colorful bulgur salad]] |
| 1/2 cup            | chicken broth                          |                                                        | [[Colorful bulgur salad]] |
| 1 bag              | chicken legs and thighs                | separated                                              | [[Arroz caldo]]           |
| 3/4 tablespoon     | chili powder                           |                                                        | [[Colorful bulgur salad]] |
| 1/4 cup            | cider vinegar                          |                                                        | [[Teriyaki tofu]]         |
| 1 can              | corned beef                            |                                                        | [[Bubble and squeak]]     |
| 3 tbsp             | cornstarch                             |                                                        | [[Teriyaki tofu]]         |
| 1 tbsp             | cornstarch                             |                                                        | [[Teriyaki tofu]]         |
| 1 small            | cucumber                               | seeded and chopped                                     | [[Colorful bulgur salad]] |
| 2 small or 1 large | cucumber                               | chopped                                                | [[Gazpacho]]              |
| 1 lb               | firm tofu                              | drained                                                | [[Teriyaki tofu]]         |
|                    | fresh ground black pepper              |                                                        | [[Gazpacho]]              |
| 3 tablespoons      | fresh lime juice                       |                                                        | [[Colorful bulgur salad]] |
| 3 cloves           | garlic                                 | chopped                                                | [[Arroz caldo]]           |
| 1 clove            | garlic                                 | minced                                                 | [[Teriyaki tofu]]         |
| 2 cloves           | garlic                                 | diced                                                  | [[Gazpacho]]              |
| 1 tablespoon       | garlic                                 | minced                                                 | [[Shrimp kebabs]]         |
| 1 pinch            | garlic powder                          |                                                        | [[Colorful bulgur salad]] |
|                    | glutinous rice                         |                                                        | [[Arroz caldo]]           |
| 1 tsp ginger       | grated or minced                       |                                                        | [[Teriyaki tofu]]         |
|                    | green onions                           | chopped                                                | [[Arroz caldo]]           |
| 3                  | green onions                           | thinly sliced                                          | [[Colorful bulgur salad]] |
|                    | leftover vegetables (cabbage, carrots) |                                                        | [[Bubble and squeak]]     |
| 1                  | lemon                                  | juice of                                               | [[Gazpacho]]              |
| 2 teaspoons        | lemon juice                            |                                                        | [[Shrimp kebabs]]         |
| 1/4 cup            | olive oil                              |                                                        | [[Shrimp kebabs]]         |
| 1                  | onion                                  | thinly sliced                                          | [[Bubble and squeak]]     |
| 1/2 large          | onion                                  | chopped finely       (red is a nice alternative)       | [[Gazpacho]]              |
| 1/2 large          | onion                                  | chopped in 1/4 inch chunks                             | [[Gazpacho]]              |
| pinch              | parsley                                | finely chopped                                         | [[Shrimp kebabs]]         |
| 1/4 tsp            | pepper                                 |                                                        | [[Teriyaki tofu]]         |
| 1/4 teaspoon       | pepper                                 |                                                        | [[Shrimp kebabs]]         |
| 3 cups             | potatoes                               | mashed                                                 | [[Bubble and squeak]]     |
| 1                  | red onion                              | cut into 1" pieces                                     | [[Shrimp kebabs]]         |
|                    | salt (preferably sea salt)             |                                                        | [[Gazpacho]]              |
| 1 tsp              | sesame oil                             |                                                        | [[Teriyaki tofu]]         |
| 1 pound            | shrimp                                 | peeled and deveined                                    | [[Shrimp kebabs]]         |
|                    | soy sauce                              |                                                        | [[Arroz caldo]]           |
| 1/2 cup            | soy sauce                              |                                                        | [[Teriyaki tofu]]         |
| 1                  | tomato                                 | chopped                                                | [[Colorful bulgur salad]] |
| 6 - 8              | tomatoes                               | chopped (Roma or plum are best; Don't lose the juice!) | [[Gazpacho]]              |
|                    | virgin olive oil                       |                                                        | [[Gazpacho]]              |
| 1/2 cup            | white sugar                            |                                                        | [[Teriyaki tofu]]         |
| 1                  | zucchini                               | seeded and cut into 1" pieces                          | [[Shrimp kebabs]]         |

Sorting the list by ingredient made it easy to go through the groups of ingredients and prepare them all, and the links to the recipes made it easy to look up next steps. I planned the order of doing them. First, I prepared the bulgur wheat because that needed an hour to soak. I saved the chicken legs for the end because they were messy, and I saved the onions for later as well because they always make me cry. I cut and chopped and food-processed my way through stacks of vegetables, covering the kitchen table with bowls.

With all the ingredients prepared, I washed the utensils and put things away. That freed up counter space for cooking. I reordered the recipes so that it was easy to see what to work on next, and I started cooking.

The entire cooking sprint took me 5 hours and 42 minutes, which was a lot of cooking but well worth it. With that and the meals we’d prepared over the past few weeks, our freezer’s stuffed to capacity. Four tidy stacks of identical food containers, then odds and ends crammed into the spaces! By golly.

I really liked planning this batch cooking session in Emacs. Org tables made things easy to sort, and the hyperlinks let me look up recipes and notes quickly.

I could probably make this even better by:

  • rigging up my foot pedal to scroll up and down through food.org
  • copying in the recipe steps so that I can take advantage of that scrolling
  • figuring out how to use Org Babel to automatically compile the ingredient tables for the named recipes

Now if only someone would write M-x wash-dishes

Making polvoron

DSC_3080

Yesterday, I tried making polvoron for the first time. =) J- and her friends had devoured most of the stash that my mom sent us. I followed a simple recipe, but once we get through the… umm… 139 pieces (although we lost quite a few to breakage, see above), I’ll try other recipes with more cooling time. I’ll also try dividing the recipe by four, as that recipe resulted in a lot of polvoron. Mmm!

W- and I cook a lot. There’s enough room in the kitchen for both of us to work, and it’s fun making and enjoying good food. I’m really lucky that he enjoys cooking as well, and that he’s up for eating my experiments!

Pizza pizza pizza pizza

DSC_3056We’re settling into a routine of making pizza from scratch almost every week. It’s relatively quick and easy to make. I use the basic bread dough recipe from Jamie Oliver’s cookbook, "jamie’s kitchen". W- prefers it when we make a double batch of dough with just one batch worth of yeast, and let the dough rise overnight. This results in these really puffy, bread-like pizza crusts.

After the dough rises, it takes me just an hour to prepare four pizzas. I divide the dough into four parts, forming them into rectangles by stretching and rolling them out. I use practically all of the baking sheets in the house. While the pizza crusts rise again, I chop and grate the rest of the ingredients. Assembly is quick and fun, although I still tend to err on the side of loading the pizza up with too much food. Baking takes twenty minutes per batch of two pizzas, and then we have plenty of pizza to eat through the week.

We’re always looking for kid-friendly recipes that we can cook in bulk. Pizza is a great way to use up bits and pieces from the fridge: pepperoni, chicken, peppers, tomatoes, and so on. Other family go-to recipes include pasta and curry. Good to be able to make things ahead!

I moved the calendar to the fridge so that we can use it to plan the meals during the week. Another step towards even smoother everyday routines!

Quantified Awesome: Community-supported agriculture with Plan B Organic Farms, fall 2011

image

After a good summer season with Plan B Organic Farms, we decided to sign up for their fall season as well. This time, I made sure to weigh and track all the produce that came in. I also took notes on what we did with the produce to make it easier to think of ways to use them before they were wasted.

Here’s what I was curious about:

  • How much did we get?
  • What was the cost per kilo or pound?
  • How does it compare to organic produce prices at the supermarket?
  • What were the proportions like? Did they match up with our perceptions?
  • How do I feel about the different vegetables now?

How much did we get? Over the 11 distributions I tracked, we received a total of 71.6 kilograms of organic produce and a container of apple cider. This worked out to an average of 6.5kg per distribution, with a standard deviation of 1.08kg.

What was the cost per kilo or pound? Weekly half-shares cost $25, about $3.84/kg or $1.75/lb of organic produce (not including the cider).

How does it compare to organic produce prices at the supermarket? The No Frills supermarket we usually shop at doesn’t have a wide selection of organic produce, so I used prices from GroceryGateway instead. In a past analysis, I found them to be usually 10% more than No Frills prices, and there are minimum order limits and delivery fees as well. Using the prices for organic produce whenever available and guessing “bunch” weights from my data, I calculated that we received an average of $31 of produce each week (including the cider). This worked out to a savings of $6 per week, or 20% (not including taxes, delivery charges, or other purchases to meet the minimum).

Would we have bought all that produce if we weren’t part of the community-supported agriculture program? I’m not sure, but the commitment device of having a box of vegetables come into our house every week helped us improve our diet.

What were the proportions like? Did they match up with our perceptions?

image

I’m surprised by this, because it felt like we received a whole lot more squash and cabbage (which I’ve included in the Greens category). They were bulky and not in our usual cooking repertoire, so they were more of a challenge. We mostly managed to finishing the cabbage, but we had to cut up and throw some of the squash away. The apples and tomatoes were occasionally suspect, too.

Here’s the breakdown within each category:

image

On average, we received 11 different types in a distribution (standard deviation = 1.2), covering 32 different types in total. The fall box included imported items such as bananas and kiwi to fill out the selection, as well as produce grown in greenhouses.

How do I feel about the different vegetables now? After two seasons of community-supported agriculture, I’m more comfortable with dealing with the increased volume of vegetables passing through our kitchen. We’ve organized the pantries with bins so that we can store all the squash and onions neatly, and we manage to get through the produce in our fridge drawers in a reasonable period of time. We waste a small fraction of the produce through inattention (apples, mostly), but have managed to convert most of the produce into good food. I’d say we’re working at 90-95% efficiency or so.

Some experimental recipes have been more fun than others. Sweet potato fries have become a favourite in the house. Baked acorn squash with brown sugar and butter is a nice winter dessert. We discovered that adding sausages to butternut squash soup makes it much easier to finish. Turnips and beets still need a lot of tweaking.

We’ve signed up for a bi-weekly winter share from Cooper’s Farm CSA in order to take advantage of delivery. We happened to start with their program in time to make a side-by-side comparison with Plan B Organic Farms, and they turned out favourably (although their produce required more scrubbing). We’ll see how things work out over the next season.

Here’s my raw data.

How I tracked this: I built a small tool for tracking community-supported agriculture into my Quantified Awesome website. Every week, I weighed all the produce and typed in the their names and weights. At the end of the season, I copied the data and used pivot tables in Microsoft Excel to analyze the results by category and week. I manually checked the GroceryGateway website for prices, and I used VLOOKUP to cross-reference the data with the prices.

My input system didn’t do anything special that a spreadsheet couldn’t handle, although I liked how the weights became part of my dashboard. If you want to start tracking either community-supported agriculture or your regular groceries, you can start with a spreadsheet (Microsoft Excel or OpenOffice). Log the produce you receive or buy, and summarize them in ways that help you answer your questions. Have fun!

Yay more food containers!

When we started cooking in bulk, we standardized on the Rubbermaid Takealongs Sandwich Keepers (7F58RDFCLR). The inexpensive containers were the right size for lunches. They stacked and nested well, too. I picked up 24 or so over several shopping trips, enough to handle a couple of weeks of lunches for W- and me.

Having discovered the success and convenience of this approach, we decided to scale up. Problem: Rubbermaid had apparently discontinued the product! They still sold Takealongs in different sizes, but the only way to get the shallow square containers was to buy them in a set or to pay a much higher price online. We didn’t want to buy a new system and end up with incompatible pieces. We looked all over for them throughout the year: Canadian Tire, Walmart, Zellers, Sears…

Today, W- finally found the Sandwich Keepers at Walmart while looking for some DVDs. Some were pink (cancer fundraising) and the rest were the usual red, so we guessed Walmart was clearing them out. W- brought home 13 packs of 4 pieces each. Yay! Now we can use up the other ingredients from the freezer and experiment with cooking a month of lunches in advance. Wouldn’t that be nifty!

Comparing Plan B Organic Farms with Cooper’s Farm CSA

After two seasons with Plan B Organic Farms, we’ve discovered a range of new recipes and learned that we can survive an invasion of beets. This winter, we decided to experiment with a different community-supported agriculture program. We chose Cooper’s Farm because they offered delivery, which will be handy when it starts snowing.

Plan B Organic Farms has a depot a block away from our house, and offers a box of organic produce for $25 a week. Cooper’s Farm offers delivery for $24.86 (including the delivery fee).

We received our first delivery from Cooper’s Farm this morning, neatly packed in a box. In total, the produce weighed 10.19kg, for a cost of $2.44/kg. Here’s the breakdown:

carrots 1476g
cabbage 3494g
onions 1380g
potatoes 1468g
sweet potatoes 651g
tomatoes 844g
turnips 878g

In comparison, here’s today’s box from Plan B Organic Farms (total: 5.85kg, $4.27/kg):

lettuce 355g
broccoli 734g
cabbage 1923g
tortillas 270g
onions 516g
acorn squash 989g
blueberries 170g
tomatoes 393g
apples 416g
garlic 83g

During the fall season, we received an average of 6.57kg from Plan B Organic Farms (stdev = 1.12kg), composed of 11 different types of produce on average. The fall shares included some imported items (kiwi, avocado, etc.) to add variety.

Plan B Organic Farms produce was generally good, but occasionally of poor quality: squishy tomatoes, apples with soft spots, and so on. Still, it helped us get more vegetables into our diet, so it was worth it. Cooper’s Farm CSA has been okay so far (except for one potato that we ended up chucking), although the produce required a lot more scrubbing.

It looks like Cooper’s Farm CSA gives us more local produce for our buck, but with less variety. We’ll see how the rest of it goes this season!