django-nudge

We have some interesting security restrictions at work. On particular requirement is that we can’t have an administrative interface exposed on our public web servers. For WordPress (which powers most of consumerfinance.gov) we use a firewall to block access to sensitive URL’s, and RAMP to push content from a separate staging server.

The non-Wordpress parts of our site are powered by Django. We wanted (and couldn’t find) something like RAMP for Django. So, we built it. It’s called Nudge (named by Josh, who wrote much of the code).

Much of the actual hard work is offloaded to the excellent django-reversion, which handles tracking changes in objects. What Nudge adds is the ability to package up a set of changes (a “batch”, terminology borrowed from RAMP) , and move those changes between servers. Thanks to the design of reversion, this works nicely for new objects, changes, and even deletions.

Nudge is released into the public domain– if you have ideas, problems, or questions, let us know, or fork away!

Introduction to the Culinary Arts at the Workhouse: Weeks 3 & 4 but not 5

I’m behind on this. I always get behind on things like this.

I am still enjoying the class, though. Here are three weeks worth of updates. Our final session is tomorrow.

Week 3: Soups & Stews

I’ll say this was maybe the lightest on learning new things, but definitely built on the previous classes. Also, the food was good, which makes up for the light learning

We made:

  • Pumpkin Bisque
  • Beef and Guinness Pie
  • Zuppa Toscana
  • Chicken & Dumplings

I feel like we also made a dessert– but I’ve lot track of it.

Week 4

It never occurred to me that there might be a middle ground when it comes to eating snails. I expected either to be disgusted or enthralled. Instead? it was OK. The next time I see escargot on a menu, I might try it again.  I have trouble imagining a situation where I’d want to cook it at home.

IMG 0365

The emphasis of the class in general was pasta (which we made in class), and Italian food more generally:

  • Bruschetta with Tomato and Basil
  • Roasted Garlic Bread
  • Crab Cakes
  • Chicken-stuffed ravioli with cream and butter sauce
  • Manicotti with cheese filling.
  • Zabaglione

The bulk of my time was spent on the marinara for the manicotti (which was exactly the kind of experience I’d hoped to get out of this class: a chance to work on basic preparations, with an expert at hand to point me in the right direction), and the zabaglione.  The marinara turned out good, but I was damn proud of the zabaglione. Give me some yolks, sugar, and wine, and I’ll make you a desert. Well, a desert sauce at least.

That was rapturous.

Week 5

I was (sadly) not able to make class. The chef saved me a copy of the handout, at least– if there’s anything interesting, I’ll report it here. That’s kinda what I do here.

Butternut Squash Soup

My fiancé is generally polite about what I produce in the kitchen. If she likes it, she’ll say “you can make that again”. If it’s something truly offensive (like the ultra-sour vinaigrette I made a few weeks ago. Big mistake: not tasting the stuff before I served it. It could have been fixed) she’ll ask “do I have to eat this?”. Between those two extremes, she’ll eat and express gratitude that I made dinner.

Last night, I got a rare “you can make that again” on a dish that was wholly improvisational, a soup made with baked butternut squash.

She’s right, I should make that again.

Well, crap. How do I make that again?

I need to start writing stuff down. If I want to reproduce something, or improve on it, I need to know what I did. There’s nothing earth-shattering here, this basically follows the accepted template of a creamy vegetable soup. It’s still worth keeping track of.

So, consider this a proto-recipe.

ingredients

  • 1 whole butternut squash, cut in half, baked until… Mushy. Scoop the squash mush into a bowl and discard the skin
  • 1 whole onion, chopped
  • 2 carrots
  • olive oil
  • 2 tbsp butter or substitute
  • milk (2 cups?)
  • white wine (1 half cup?)
  • balsamic vinegar to taste
  • powdered ginger to taste
  • Chinese five-spice to taste

steps

  1. coat the bottom of a large pot with olive oil, and put over medium-low heat
  2. when the oil is hot, throw in the onion and carrots. Stir often.
  3. when the onions are translucent, add the wine
  4. let the wine cook down a bit, continuing to stir
  5. add the squash mush, keep stirring
  6. add the milk, and increase the heat. Keep stirring
  7. add the butter
  8. taste, and add ginger, five-spice, balsamic vinegar, salt, and black pepper as you see fit. To my best recollection, I used maybe 1-2 tsp of salt, a few grinds of pepper, a few shakes of the ginger powder, a small pinch of the five-spice, and two or three splashes of the vinegar

Here are some improvements I think I’ll try next time:

  • blend it, after the milk is incorporated. That was actually my intention, until I saw how nicely everything came together with just stirring. In the bowl, it turned out not quite as smooth as it looked. Blending should improve the texture.
  • I would have included chopped celery with the onion and carrots (a proper mirepoix) if I had celery on hand
  • use fresh or dried ginger, instead of the powdered stuff
  • it seems like maybe this should have garlic.