Monthly Archives: May 2011

Weekend Recipe: Orichette with Broccoli Rabe

When it comes to cooking, I absolutely love Italian food. Real Italian food, that is. In America, until recently, like all too many ethnic foods, Italian food was bastardized into trashy stuff – mostly sickeningly sweet tomato stuff from cans. Real Italian food is wonderful, simple, and fresh. Italian cooking is all about getting the best quality fresh ingredients, and doing as little to them as possible.

A couple of weeks ago, my wife and I went to Eataly. Eataly is a labor of love by the wonderful Italian chef Mario Batali. It’s a sort of massive Italian market, with a collection of restaurants embedded in it, cooking the stuff that they sell. There’s a pasta restaurant, a pizza oven, a seafood restaurant, a salumeria, a cruda bar (cruda is sort of like Italian sashimi: very fresh fish, served raw with a sprinkle of salt and olive oil), and so on.

We went to the pasta place there, and had the most phenomenal pasta dish. It was everything that I love about good Italian cooking: amazing ingredients, prepared in a simple way that brings out their flavors. It was amazing. So, naturally, I had to reproduce it at home. And being Italian food, that was pretty easy to do – because it’s such a simple dish!

The dish was Orichette with sweet Italian sausage and broccoli rabe. Basically, you need a really good sausage, and really good fresh broccolli rabe. It’s all about those flavors, without distractions.

The trick to this is the length of the cooking time. It took me a while to figure this out: I tend to cook veggies Chinese style, which means that I barely cook them at all. I stir fry american broccoli for under a minute. But that doesn’t work for rabe. Broccoli rabe is an absolutely lovely veggie, but it really needs to be cooked well. When it’s raw, it’s got a very strong, almost overwhelming horseradishy bitterness. You need to really let it cook for a while to get it past that. But the thing about it is, unlike the typical American broccoli, it’s got the strength to handle that. It doesn’t turn into mush. You cook rabe for 20 minutes, and it’s still got some body to it. Do it right, and it’s one of the most lovely, succulent vegetables in the world.


  • 3/4 pound good quality sweet sausage meat. It’s important to get a really good quality sausage. If you buy a cheap prepackaged sausage from the grocery store, the dish won’t work. You want a really good fresh Italian sausage. We bought our at the butcher counter at Eataly. You should remove the skin, so that all you have is the meat, crumbled.
  • A head brocolli rabe, cut into roughly two-inch lengths.
  • 4 cloves minced garlic
  • Salt and pepper
  • Chili flakes
  • One cup dry white wine
  • 1 teaspoon sugar (just enough to take the edge off the acid from the wine)
  • Olive oil
  • One pound orichette


  1. Heat a saute pan. Add a few tablespoons of olive oil when it’s hot.
  2. Throw in the sausage meat. Stir it around, breaking it up into smallish bite-sized pieces. Cook it on high heat until it gets nicely browned.
  3. Reduce the heat to medium, add the garlic and chili flakes, and then the broccoli. It will look like it’s way too much brocolli rabe, but don’t worry. It’s going to cook down a lot.
  4. Stir around until the broccoli rabe starts to wilt. Then add the white wine and the sugar, and reduce the heat to a low boil.
  5. Start cooking the pasta. Orichette generally cooks for a bit more than ten minutes, and the broccoli rabe should cook for between 15 and 20 minutes, so work out your timing from that so that they’ll both finish at the same time.
  6. When most of the white wine has cooked away from the sauce, add 1/2 cup of the pasta water. Whenever the sauce starts to look dry, add some of the pasta water. This adds some salt (because your pasta water should be salted!), and it also helps to build the sauce, because the starch acts as a binder.
  7. Taste the sauce, and add salt and pepper as needed.
  8. When the pasta is done, drain it, and add it to the sauce, drizzle with a few more tablespoons of olive oil, and toss it together.

Serve with a sprinkle of parmesan cheese.

Stupid Politician Tricks; aka Averages Unfairly Biased against Moronic Conclusions

In the news lately, there’ve been a few particularly egregious examples of bad math. One that really ticked me off came from Alan Simpson. Simpson is one of the two co-chairs of a presidential comission that was asked to come up with a proposal for how to handle the federal budget deficit.

The proposal that his comission claimed that social security was one of the big problems in the budget. It really isn’t – it requires extremely creative accounting combined with several blatant lies to make it into part of the budget problem. (At the moment, social security is operating in surplus: it recieves more money in taxes each year than it pays out.)

Simpson has claimed that social security must be cut if we’re going to fix the budget deficit. As part of his attempt to defend his proposed cuts, he said the following about social security:

It was never intended as a retirement program. It was set up in ‘37 and ‘38 to take care of people who were in distress — ditch diggers, wage earners — it was to give them 43 percent of the replacement rate of their wages. The life expectancy was 63. That’s why they set retirement age at 65

When I first heard that he’d said that, my immediate reaction was “that miserable fucking liar”. Because there are only two possible interpretations of that statement. Either the guy is a malicious liar, or he’s cosmically stupid and ill-informed. I was willing to accept that he’s a moron, but given that he spent a couple of years on the deficit commission, I couldn’t believe that he didn’t understand anything about how social security works.

I was wrong.

In an interview after that astonishing quote, a reported pointed out that the overall life expectancy was 63 – but that the life expectancy for people who lived to be 65 actually had a life expectancy of 79 years. You see, the life expectancy figures are pushed down by people who die young. Especially when you realize that social security start at a time when the people collecting it grew up without antibiotics, there were a whole lot of people who died very young – which bias the age downwards. Simpson’s
response to this?

If you’re telling me that a guy who got to be 65 in 1940 — that all of them lived to be 77 — that is just not correct. Just because a guy gets to be 65, he’s gonna live to be 77? Hell, that’s my genre. That’s not true.

So yeah.. He’s really stupid. Usually, when it comes to politicians, my bias is to assume malice before ignorance. They spend so much of their time repeating lies – lying is pretty much their entire job. But Simpson is an extremely proud, arrogant man. If he had any clue of how unbelievably stupid he sounded, he wouldn’t have said that. He’d have made up some other lie that made him look less stupid. He’s got too much ego to deliberately look like a credulous drooling cretin.

So my conclusion is: He really doesn’t understand that if the overall average life expectancy for a set of people is 63, that the life expectancy of the subset people who live to be 63 going to be significantly higher than 63.

Just to hammer in how stupid it is, let’s look at a trivial example. Let’s look at a group of five people, with an average life expectancy of 62 years.

One died when he was 12. What’s the average age at death of the rest of them to make the overall average life expectancy was 62 years?

frac{4x + 12}{5} = 62, x = 74

So in this particular group of people with a life expectancy of 62 years, the pool of people who live to be 20 has a life expectancy of 74 years.

It doesn’t take much math at all to see how much of a moron Simpson is. It should be completely obvious: some people die young, and the fact that they die young affects the average.

Another way of saying it, which makes it pretty obvious how stupid Simpson is: if you live to be 65, you can be pretty sure that you’ll live to be at least 65, and you’ve got a darn good chance of living to be 66.

It’s incredibly depressing to realize that the report co-signed by this ignorant, moronic jackass is widely accepted by politicians and influential journalists as a credible, honest, informed analysis of the deficit problem and how to solve it. The people who wrote the report are incapable of comprehending the kind of simple arithmetic that’s needed to see how stupid Simpson’s statement was.

Hold on tight: the world ends next saturday!

(For some idiot reason, I was absolutely certain that today was the 12th. It’s not. It’s the tenth. D’oh. There’s a freakin’ time&date widget on my screen! Thanks to the commenter who pointed this out.)

A bit over a year ago, before the big move to Scientopia, I wrote about a loonie named Harold Camping. Camping is the guy behind the uber-christian “Family Radio”. He predicted that the world is going to end on May 21st, 2011. I first heard about this when it got written up in January of 2010 in the San Francisco Chronicle.

And now, we’re less than two weeks away from the end of the world according to Mr. Camping! So I thought hey, it’s my last chance to make sure that I’m one of the damned!

Continue reading

The Perils of Premature Optimization

A reader who’s known me for a while just sent me a note asking me to say something about premature optimization. The reason that I mention that he’s known me for a while (in fact, someone who used to be a coworker) is because this is a topic that I’m prone to rant about in person, but I’ve never mentioned on the blog. So he knows that it’s something that I’ve got a strong opinion about. Basically, he’s having trouble dealing with an annoying coworker doing this, and he wants a rant-by-proxy. I’m OK with that. :-).

When you’re writing a new piece of software, particularly on a modern computer, one of the unintuitive things that frequently happens is that the performance of your system is really quite different from what you’d expect.And even when everything is as expected, most people don’t have a particularly good sense of tradeoffs – if I make this thing faster, what effect will it have on that? and if it does really improve the performance, how much will it improve it, and at what cost? If you can’t answer that – and answer it precisely, with supporting evidence – then you have no business optimizing.

So when you sit down to write some new code, what you should really do is write code that’s algorithmically efficient – that is, you pick an algorithm that has good performance in asymptotic time – and implement it in a straightforward way.

But what many people do – in fact, what pretty much all of us do at least some of the time – is try to be clever. We try to find opportunities to change the code to make it faster. Doing that before you understand where the computer actually spends its time when it’s running the program is what we call premature optimization.

Why not?

Continue reading

What if it's not Regular? Pump it!

At this point, we’ve seen a fair bit about regular languages, and we’ve gone through the introduction to context free languages. We know one way of showing that a language is regular or context free: if you can write a (regular/context free) grammar for a language, then that language is necessarily (regular/context free). But… what if we have a language that we suspect is not regular?

Continue reading