I gave a quick “lightning” talk about Thinglauncher at django-district tonight. Here are the slides!
Author Archives: Ross
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.

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
- coat the bottom of a large pot with olive oil, and put over medium-low heat
- when the oil is hot, throw in the onion and carrots. Stir often.
- when the onions are translucent, add the wine
- let the wine cook down a bit, continuing to stir
- add the squash mush, keep stirring
- add the milk, and increase the heat. Keep stirring
- add the butter
- 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.
Things I haven’t blogged about: My shoulder injury
A year and a month ago (The day after New Years. My birthday), I drove to Falls Church to pick up some new suits. On my way back to my car, I took… a shortcut? over a curb. This curb was painted (thus slick) and it had recently rained. I slipped. I was holding my new suits with my right hand, and so put out my left to catch myself.
That decision (more like instinct)– I won’t say it was necessarily bad. Someone more experienced in falling down probably knows how to fall safely. I’ve successfully avoided the kind of situations where one learns how to fall safely (sports?) and extending my arm to catch my fall seemed like a reasonable idea at the time. I got up, but was in a lot of pain. Something was wrong with my arm– I assumed it was broken.
I called Patty, and she drove me to the emergency room. My experience of the INOVA emergency room was anticlimactic, and even almost.. pleasant. We waited in line a few minutes (during which I pulled out my phone, and let Matt and Travis know I was going to be “at least” late the next day, and called Mom), sat down for about 5 minutes, and was talking to a nurse and succession of doctors.
Someone quickly noticed that my shoulder looked “squared off”, a symptom of dislocation. After some discussion, I consented to having them try to “just” pop my shoulder back in place– which was a pretty freaky experience. One person held me down as the doctor pulled my arm into a position that felt wrong wrong wrong, and then: pop!
I don’t know if I actually heard a “pop”, or if I’ve embellished that memory with sound effects. It felt like a pop. If there wasn’t a popping noise, there should of been.
Either way, I instantly felt 1000% better. I was smiling, laughing, and back on my phone providing my coworkers and family with an updated diagnosis. I let Patty take a picture.

I left the hospital with a snazzy new sling and a recommendation that I see an orthopedic surgeon ASAP.
Leaving the hospital, we were faced with a Car Situation. I drive a stick shift, and Patty doesn’t. I was in no position to drive, and we had two cars we needed to get home. Thankfully, a call to Dana and Brian produced a solution (it usually does. My family is pretty great)– They helped us get home, and we traded cars for a few weeks.
I wore the sling for about a month, and then graduated to physical therapy. After a few months of PT, the doctor decided I had gotten all of the benefit out of it that I would, and I was done. Fixed, or something like it.
In August, while doing something not particularly strenuous, I had (what I later found out was called) a partial dislocation– it was over in a second, and there was no pain. It was weird, but not too troubling.
And then it happened a second time a few days later.
The doctor decided that I need an MRI. The MRI indicated that I had a torn labrum– the piece of cartilage that keeps your shoulder in it’s socket. The surgery to repair the labrum basically involves anchoring it back to the bone.
The surgery went well. Being anesthetized was not at all like I expected– I had always imagined it being like a deep sleep, or being awake but cut off from your senses. It was a surprise to close my eyes, and then suddenly be several hours in the future, groggy and nauseous.
After that, it was much like the first time: About a month of wearing a sling (and borrowing Dana’s car), and a few months of PT, which I finished about a week ago.
Back up in the second paragraph, I said I wasn’t sure that the decision to stick my arm out was bad. This is because I’ve had time to imagine what could have happened: What if I broke my arm, instead of simply dislocating it? What if it was my right (dominant) arm? What if it was my face, or forehead that hit cement? There are a dozen or more ways this whole thing could have been worse.
I have developed some skittishness about falling, though: If the ground I’m walking on is the least bit slippery, I’m much more mindful and careful of my steps. I think about wearing a sling, and I think about all the time I spent in PT. It’s a fear of doing this whole routine over again. I really hope I’m done with it.
And, I don’t walk on curbs.
Spammer, you’re doing it wrong
Introduction to the Culinary Arts at the Workhouse: Week 2
I’m enrolled in a 6-week cooking class at the Lorton Workhouse. Our second class was Monday, 1/6.
Class began with a discussion of the five mother sauces, and throughout the night we made two of them (hollandaise and a vinaigrette. We made a béchamel last week.), and some veggie chopping and other prep-work.
The night’s menu was:
- Warm Bacon and Spinach Salad
- Caramelized Onion Risotto with Roasted Tomatoes
- Savory French Brussels Sprouts
- Baked Salmon with Tarragon Hollandaise
- A “cake” made of layers of crêpe and an amaretto crème anglaise, topped with a chocolate ganache (with more amaretto)
I may not have actually spent two hours stirring risotto, but it sure felt like it. Someone had to do it, and I was in the right (or wrong) place at the right time. Despite the arm-exertion, it was useful to see how a risotto builds up, and get a basic sense for when to add more liquid to the dish.
Making a crêpe was a good confidence-builder: I’ve tried it at home and failed miserably, ending up with something I’ll call “scrambled crêpes”. I tried it a home the next night, and promptly… scrambled some more. After about three or four failures, some tweaking of temperature levels and amounts of butter, and one pan switch, I made about a half dozen acceptable-looking crêpes. Score!
Fox DC on Comics
The Fox 5 story on comic books is now online– it’s more nuanced than I expected, but still pretty silly.
The biggest problem (and I hinted at this in my earlier post) is that stories like this treat comics as a genre and not a media. Criticizing comics on the DC relaunch is like judging the film industry on Deuce Bigalow 2.
There’s at least one extremely fair point in there, though: The advertisements in many “mature” comics do seem to target kids. That seems like a tacit admission that the publishers intend (or at least expect) them to end up in kids hands.
But why, after establishing that these comics aren’t for children, does Sherri Ly take them to a middle school “to see what kids think”? For the same reason she shows us comparisons between the older/more innocent and new darker/adult versions of Batman, Catwoman, and Starfire: it’s a forced attempt to manufacture outrage.
Relaunched Comics Using Sex and Violence To Sell: MyFoxDC.com
What the app?
If you’re on a phone, and click a link to something on the Mac App Store, this is the screen you get:
This seems like a missed opportunity. At the very minimum, you should get information about the app– the same kind of web page you get when you (on a PC) click a link to an iOS app and don’t have iTunes installed.
Pre-debunking Fox 5′s Story on the Comics Menace, Based on the 15 Second Promo Ad that aired during Football last night
The promotional clip follows the usual local-news scare story outline : Here’s a hazy transcript:
- [Picture of an Archie comic] some nonsense about comics not being “what they used to be”, ignorant of history.
- [successive shots of modern comics for adults] Sex! Violence! Some equally outrageous third thing that I can’t recall!
- [clip of an interview of a guy in a comic shop]
- Find out how to “K.O.” this comics menace, Wednesday at 5!
I think the report will imply that comics are somehow a uniquely harmful to kids, and worth Freaking Out about. They aren’t.
The only reason to single out comic books is that is that they’ve historically been an easy target. It’s a subculture that’s small and generally misunderstood, and there’s almost no risk to painting it as The Enemy of All That is Good and Wholesome.
The same problems exists across all media: There’s nothing (content, theme, or maturity level) you’ll find in a comic shop that you couldn’t find in a book store, library, game shop, cable TV, the multiplex, or THE INTERNET. We either live in a world where art can be made by and for adults, or we live in a world where everything must be appropriate for children.
update: Here’s the clip.

