Rob Ringham's Blog

My thoughts on software engineering, life, sushi and heavy metal music.

Recipes for (Vegan) Software Engineers 1: Coconut Peanut Thai Tofu

clock August 26, 2009 00:00 by author Rob Ringham

Well now, it has been quite some time since I've updated. I went on vacation and lost track of time. I wish I could go back in time (not really, I just wanted an excuse to link to Huey Lewis and the News).

I promise that I shall continue my iPhone game programming series soon, but for now, I wanted to talk about something far more important: food. Specifically, the coconut peanut thai tofu recipe I have been working on. The first try was a peanut buttery disaster. The second try was tasty. The third try, after a bit of refactoring, was nice and refined. So I present to you my recipe for some wholesome vegan thai tofu goodness.

Disclaimer: I am not and have never been a chef, but I have worked in a Pizza Hut as a cook for a few years before and during college. Does this qualify me to create and distribute a recipe? Probably not, but try telling me to stop. You can't. Anyway, here it is:

What You Will Need

  1. 1/2 block firm tofu, pressed to remove extra water
  2. 1/3 cup chopped green onions (scallion)
  3. 1/2 cup mushrooms (I prefer Pennsylvania Dutchman Mushrooms. They are too awesome for words. Except the ones preceding this sentence.)
  4. 1/3 cup coconut milk
  5. 2 tablespoons creamy peanut butter
  6. 2 tablespoons soy sauce
  7. 1 teaspoon rice vinegar
  8. 2 teaspoons garlic powder (or more to taste)
  9. 1 teaspoon chili powder
  10. 1 and 1/2 tablespoons vegetable oil


What You Might Want To Try This Recipe On

  • Rice noodles are pretty cool. If you're not into that, try...
  • Rice. If you're still not into that, and maybe want to make it a bit healthier, try...
  • A bed of baby spinach.

What Might Also Be Tasty To Put On It After Its Done

  1. Sriracha hot sauce
  2. Toasted sesame seeds


Procure those tasty ingredients, and let's get started.

Step 1: Preparing The Tofu
Cut it into small cubes, around the size of homefry-style potatoes. DO IT NOW.

Step 2: Make Some Awesome Coconut Peanut Sauce
Throw the peanut butter into a mixing bowl, then pour the coconut milk in. Wisk it until its nice and smooth. Word. Mix in the soy sauce, rice vinegar, garlic powder and chili powder. Mix it up. The sauce should be on the runny side, but not super runny.

Step 3: Get Your Sauté On
Heat the oil in a skillet over medium heat. When its heated, throw in the green onions and the mushrooms. Sauté them for 1 minute. Sauté them like your life seriously depends on it. You'll thank me.

Step 4: Tofu Enters The Mix
Throw the tofu into the skillet. Knock the heat up a notch, but not too big of a notch. Cook the tofu until its nicely browned on all sides. Lots of recipes will tell you it takes 2-3 minutes for this to happen. They are liars. I've found it takes 3-4 minutes. Toss it every 45 seconds or so to get a nice even cooking, then just let it sit there until you're ready to toss again.

Step 5: The Best Step
Once the tofu is nicely browned on all sides, pour in the aforementioned Awesome Coconut Peanut Sauce. You probably want to drop back down to medium heat. Stir so its covering everything evenly, then let it cook for another minute or two, stirring occasionally. The sauce will quickly start to thicken and brown. Once its thick, you're done. Good job. If you haven't invited me over for this, you should feel bad about yourself. If you have, lets enjoy!

Step 6: Epilogue
You found that the recipe served two people (or served yourself twice). You enjoyed it, and you told all of your friends (specifically naming me, and letting them know how awesome I am). You may or may not have sprinkled some toasted sesame seeds on it and maybe (or maybe not) put some hot sauce on it. All in all, it was a good time, everyone learned a valuable lesson, and you'd recommend it again.



An ode to WinDbg

clock July 24, 2009 23:29 by author Rob Ringham

WinDbg is one of my favorite tools to use for debugging both native and managed Windows applications. I highly suggest you become familiar with it if you are not already. Everyone is doing it. Don't you want to be cool?

What's that? You have a memory leak in your managed code? Should have talked to Ricky on the sidewalk! Or at least checked out this article on tracking down managed memory leaks! Maybe its a memory leak in unmanaged code - blamo! - then check out this article on tracking down unmanaged memory leaks.

Not a fan of typing in all of those commands? Give this a try!

Have fun! Stay tuned for Part III of my series on sprite animation with OpenGL on the iPhone!



Lambda Expressions + Dispatcher.BeginInvoke() in C# = syntax I always forget

clock July 21, 2009 19:43 by author Rob Ringham

I love C#. I love WPF. I love lambda expressions. I love Dispatcher.BeginInvoke(). With all of that love, how is it that I always forget the correct syntax for using Dispatcher.BeginInvoke() with a lambda expression? I don't know, but it drives me crazy that I do. That's why today's Thought of the Day is simply this: the syntax for using Dispatcher.BeginInvoke() with a lambda expression.

Thought of the Day

this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new ThreadStart(() =>
    {
        
// Do something awesome here on the UI thread.
    }));



About the author

I'm Rob Ringham. I'm a software engineer by day - and a software engineer by night. I enjoy many things, from bass guitar, to sushi, to Metallica, to mountain climbing. I like cacti. I like cats. I'd like to think that you'll find my blog informative and entertaining, but if you don't, no hard feelings. But I secretly will harbor resentment against you (or at least your IP address).

My StackOverflow flair:

Month List

Sign in