LPTHW: Exercise 4: Variables and Names and Knives

And we’re back!

I had to take a couple weeks’ break from Coding with Knives and other creative projects because I’ve been dealing with some things in my personal life that have demanded just about all of my available energy. Awesome friends and deliberate self-care means I’m slowly getting back to a place of relative normalcy, but like all things, it’s a process… and there are bumps in the road, plenty of ’em. The key is to stay present and keep moving forward.

LPTHW’s exercise four introduces variables. In this exercise, we print simple phrases with variables inserted:


Zed also has us run Python from the terminal as a calculator, using variable names to do calculations.


Really just not a big deal at all.

So what else is not a big deal – at least, once you have the right stuff? Chopping things. That’s right, today I’m talking my namesake: cutting boards and knives.

First, cutting boards. What are you currently using? The countertop? Decorative glass? The plate you intend to serve your food on?

Over the years, I’ve seen all of the above – and each time, I shuddered. If YOU answered YES to any of the above, you should not feel ashamed or judged, but you should stop cutting things immediately, run to a store with a home goods department, and purchase a set of bamboo cutting boards.

I love bamboo because it’s renewable, cheap, sturdy, and easy to clean. Bamboo is also incredibly strong! I have been using the same suite of bamboo cutting boards for years with a very sharp chef’s knife and they are in fantastic condition. As an added bonus, I’ve found that bamboo does not seem to retain as valiantly as my solid wood cutting board the odorousness of things like garlic, onion, and ginger. This is helpful when you use these ingredients frequently.

Please note that while my cutting boards have seen all manner of plant matter, from kohlrabi to wakame, I do not handle raw meat in my kitchen (or ever) so I can’t speak to that experience.

Moving onto knives!

There’s a reason you see the same knife in all of my pictures:

Chiffonading collard greens

Chiffonading collard greens

Slicing into spaghetti squash

Slicing into spaghetti squash

Dicing roasted peppers

Dicing roasted peppers

This is because for 98% of tasks – cutting, slicing, dicing, and mincing – I use the same high-quality chef’s knife: a 185mm Super Series MAC SA-70 Utility Knife.

MAC Knife SA-70, Utility Knife, 185mm blade

A chef’s knife is by nature a multi-purpose tool, intended to help you accomplish a variety of tasks in the kitchen. It’s absolutely worth investing in one and paying to have a professional sharpen it. (Yes, I’m in the camp that suggests you don’t sharpen your own knives – deal.) I use MAC knives because once upon a time my friend Matt let me borrow his to prepare multi-course meals for two hundred people and I fell in love. I received my own as a gift in 2010 and have been using it almost daily since. Here’s a link to see the series and another to consider purchasing.

The MAC Knife is not inexpensive, and I’m convinced that anyone who cooks regularly should make the sacrifice of $100 or so for a decent tool. But if, for whatever reason, you are not able to spend that kind of money right now, I suggest a suitable alternative: the IKEA 365+ GNISTRA Vegetable Knife.

IKEA Gnistra Vegetable KnifeCompared to my svelte MAC knife, it is a bit heavier and clunkier, but make no mistake: this $15 bargain is a versatile knife that takes well to professional sharpening. And it’s better made than you might expect. The first time I had a professional sharpen my knives, he of course oohed and aahed over the MAC. But when I pulled out the IKEA knife, he admitted that it was much better quality than he anticipated.

So there you have it! Cutting boards and knives: essential. Make it happen!


LPTHW: Exercise 3: Numbers and Math and caramelized onions

I use math a lot in my daily life. I’ve managed complicated budgets for several businesses (including my current job) and have been doing my own taxes (accurately!) for over a decade. Most of the time I’m in the grocery store I’m running numbers, determining sale prices, calculating total costs. Same goes for the kitchen — frequently I’m altering recipes, which requires an ability to do conversions on the fly.

Yet, when I saw that this exercise was about “numbers and math”, I froze. Numbers and math! It must be some basic, primal fear coming out. I’m glad I didn’t let it stop me:


Not so scary!

In the extra credit, Zed asks us to go back and comment out each line, explaining what is happening:


The only thing that tripped me up was modulus. In Zed’s words: “Another way to say it is, ‘X divided by Y with J remaining.’ For example, ‘100 divided by 16 with 4 remaining.’ The result of % is the J part, or the remaining part.” Okay.

He also has us start Python and use it as a calculator. I didn’t do anything too fancy:


Next up, he has us write another little .py file that does some math. I couldn’t figure out anything I needed to determine, so I just made something up.


I counted some hypothetical fruit. I’m looking forward to covering variables because I think it would have made my little example easier to write.

Finally, he stressed the importance of using “floating numbers” so I went back and re-wrote my little program to use them. Accuracy wasn’t an issue with this example, but it might be in the future, so floating point numbers seem like a good idea.

For today’s cooking basics lesson, I’m covering caramelized onions. Yesterday I made a pot of my favorite fordhook lima beans. The secret to their deliciousness is a generous base of caramelized onions.


Caramelizing means cooking over low-ish heat for a long time in order to brown the naturally-occurring sugars in the onions. The formerly pearly-white cubes are transformed into a rich golden-brown (or deeper!) color with a rich, savory-sweet flavor.


Start by uniformly chopping onions. A lot of folks go for long thin slices, but I wanted cubes. The small pieces look better than strands in the finished dish.

Warm or melt your fat of choice over medium heat. I used Earth Balance margarine, but you could also use coconut oil or olive oil.

Add the onions.

Stir to thoroughly coat onions with fat.

After 10 minutes on medium heat. Use a stiff, well-made spatula to scrape up the bits of browning goodness.

After 20 minutes on medium heat.

Scrape scrape. After thirty minutes on medium. I turned it down to medium low.

Forty minutes…

One hour.

What a difference a little time and heat makes! I did not add any salt, sugar, or liquids to enhance the caramelization process.

If you’re making a soup or a pot of beans, at this point you simply add other ingredients and simmer until fully cooked. As I mentioned above, I used fordhook lima beans and simmered them until the broth formed a kind of rich oniony gravy. A perfect dinner!


LPTHW: Exercise 2: Comments and Chana Masala

Exercise two is about comments. I already knew how to comment out code, so this was an easy one.


Zed explains that comments are important because they give you a way to explain, in plain English, what something does. Comments help future readers of your code understand what’s going on. They also permit you to disable parts of your program if you need to.

Comments in Python use the hash character (#, octothorpe), but today I learned that other languages use other symbols. I noticed this while reading Erik Dietrich’s post “Rapid Fire Craftsmanship Tips“. He gives a very specific example of when a certain type of comment is not so helpful.

Taking time to document what I’m doing helps with the learning process — it makes things “stick”. This is exactly why Zed often suggests that we go back and write comments around seemingly easy exercises. It can feel tedious, but I still do it.

In related news, “Very” Early Bird tickets for PyTennessee opened today and I got one! $50 for an earlybird ticket for a two-day conference is a steal, especially if I can find a couch to sleep on for the weekend. Hopefully I’ll be pretty far along in my journey by next February and will learn a lot from the experience.

Today is October first and in the spirit of my favorite month of the year I want to share one of my favorite recipes: chole (chana) masala. It’s one I love to make for crowds and dinner parties because it always pleases. I also enjoy preparing it for sick friends as it keeps exceptionally well, actually improving the longer it sits in the fridge (up to a point!). It is a variation of the recipe shared here. Let me know if you have any questions.Chana masalaIngredients:

  • 1/4 cup coconut oil (unrefined works)
  • 1 very large yellow onion, thinly sliced (sweet onions also work — I’ve had great luck with giant vidalias)
  • 1 small jalapeno or other hot pepper, seeded and minced (wear gloves!)
  • 1 1/2 heaping tablespoons minced fresh garlic
  • 1 heaping tablespoon minced fresh ginger
  • 1/4 – 1/3 cup finely chopped fresh cilantro (omit if averse)
  • 2 28 oz cans diced organic tomatoes in juice, undrained (no basil or seasonings added)
  • 1/2 teaspoons salt (add more to taste if your tomatoes are unsalted, but most are salted)
  • 3 1/2 – 4 cups cooked chickpeas
  • 1 tablespoon agave nectar
  • Juice of one small lime or 2 teaspoons tamarind concentrate
  • 1/2 cup coconut cream
  • Post Punk Kitchen spice blend
    • 1 tablespoon plus 1 teaspoon ground cumin
    • 1 tablespoon ground coriander
    • 1 teaspoon ground turmeric
    • 1/2 teaspoon fennel seeds, chopped
    • 1/2 teaspoon cardamom
    • 1/4 teaspoon cinnamon
    • 1/8 teaspoon ground cloves
    • 1/4 teaspoon ground cayenne (add more or less to taste)

Please note that in this and any recipe, it’s incredibly important to use fresh, fragrant spices for the best-possible dish. I’ll cover proper storage of spices in a later post, but for now: if your spices smell like sawdust, they’ll probably taste that way, too. Toss ’em and invest in something new.


Preheat one of your largest pans or pots over medium heat. I use a large, heavy-bottomed pan because I have one and it helps the tomatoes cook down faster, but if you don’t, you can use a large pot.

Make your spice blend by combining spices in a bowl and whisking with a fork or small whisk.

When the pan is hot, add coconut oil. Allow it to warm. Add the onion (you should hear it sizzle) and cook about ten minutes. Onion will become soft and golden, and depending on how hot your pan is, may brown some. You may elect to leave the onions mostly undisturbed, or give them a good toss every few minutes or so. Just don’t burn them!

After about ten minutes, add the hot pepper, garlic, and ginger all at once, and stir constantly for about 30 seconds to a minute. Add the spice blend and stir constantly for about another minute. Make sure the onion-pepper-garlic-ginger mixture is thoroughly coated.

Add the tomatoes and mix well, scraping the bottom of the pan to get all that sauteed goodness. Add salt and chickpeas. Cover the pan and raise heat to medium-high, but once it has reached a strong simmer, uncover. Reduce heat to medium. Allow to simmer enthusiastically for about twenty minutes, stirring every few minutes or so. Be mindful of the heat – you don’t want anything to burn. The point is to get the tomatoes to cook down so that the dish is thick and saucy rather than watery.

Once it’s reached a good consistency, stir in about a half a cup of coconut cream. You can use more. Creaminess is wonderfulness.

Adding my secret ingredient - the coconut cream!

Adding my secret ingredient – the coconut cream!


Adding the tamarind

Add the lime or tamarind and agave nectar. Taste for seasonings and adjust as necessary. Add cilantro if using. Remove from heat and allow to sit for about ten minutes.

Thanks to Isa and Terry at the Post Punk Kitchen for inspiring me with this recipe.