Sous Vide Pork Belly (10th Street Supper Club)

Sous Vide Pork Belly

For September’s Tenth Street Supper Club, Chef Roger and I did some great things, but my hands-down favorite was my sous vide-cooked pork belly. It’s pretty simple, combining a nice dry rub, a short, moderately-low temperature smoke, and an afternoon in my meat aquarium.

Dry Rub:

  • 1 Cup kosher salt (coursely ground)
  • 1 Cup brown sugar
  • 1/8 Cup cayenne pepper
  • 1/4 Cup sweet paprika
  • 1/4 Cup garlic powder
  • 1/4 Cup onion powder
  • 1/8 Cup black pepper

Prepare the pork belly by removing the skin (if needed), leaving as much of the wonderful fat as possible. Cover both sides with the dry rub, wrap in plastic wrap or aluminum foil and allow to rest for about 30 minutes.

Smoke at 170°-200°F for about 2 hours.

Remove from the plastic wrap or aluminum foil, and vacuum pack the belly. Submerge in a 157°F water bath for 6-8 hours.

When serving sear the cap of the belly using a blow torch or a very hot oiled skillet.

Filed under:


Gluten-free Purple Potato Gnocchi

Potato Gnocchi

Yesterday, I visited, Cool Conifers, and the lovely Arabella helped me harvest a few potatoes. Well, more than a few. A lot. Maybe 30 pounds of amazing potatoes. Russets and Banana fingerlings are great, but I really love the Purple Majesty (purple meat), and was turned on to Mountain Rose, with wonderful red and white meat. I bought way more than I should have.

Today, I used some and made Gnocchi from some of the purple potatoes. They tasted great, but the starches were a bit different, and gave the gnocchi a moderately different texture. And they were grayish.

Here’s my recipe

  • 8 oz Boiled, drained, and riced, Purple potatoes
  • 8 oz Brown rice flour
  • 1 tsp Xanthan Gum
  • 1 Tbsp finely chopped Rosemary (fresh)
  • 1 tsp Garlic salt
  • 1/4 cup Ricotta cheese
  • 2 large eggs

I boiled more than 8 oz of potatoes - maybe more like a pound, but I only riced 8 ounces. I think I peeled and boiled 5 potatoes, but they were about the size of large store-bought red potatoes. If you don’t have a ricer, you could simply make mashed potatoes out of them, and then use 8 oz.

Anyway, combine all the ingredients in a mixer, and mix until smooth. Immediately begin rolling gnocchi.

  • Take a 2 oz ball of dough, and roll it into a ball
  • Roll the ball into a snake, of diameter 1/3-1/2 inch
  • Cut equal portions of the snake, into 10-12 equal pieces
  • Roll each portion into a ball using your palms
  • Smash the ball using your index finger
  • Use the side of your index finger to roll one side partially onto the other (and remove it from your palm)
  • Set it on wax paper

Gnocchi is time consuming, and people will tell you you need tools. It is, and you don’t, though the presentation is nice, if you have little, even grooves on the gnocchi.

Once you’re done making the individual gnocchi, let them sit for at least a couple hours. Drying the dough will help them keep separated when you boil them.

When you’re ready to cook them:

  • Bring some heavily salted water to a boil (This is true for all pasta. Don’t use a pinch of salt, use a large handful. Do it once, then tell me how good an idea it is.)
  • Once the water is boiling, put a few handfuls of the raw gnocchi in the water. It will sink. Cook it until it floats.
  • Then cook it one more minute. You’ll get the hang.
  • Remove the finished gnocchi from the water with a slotted spoon, and drain for a few seconds in s strainer
  • Toss in a little bit of olive oil. (This helps the gnocchi remain separate as you’re cooking the rest)
  • Cook another few handfuls.


Filed under:


Installing AWS Command Line Tools on Mountain Lion

A lot of this probably works just fine under Linux, too.

A bunch of the tools require java, which can be downloaded from Apple, and you’ll want to set your environment’s JAVA_HOME variable (in ~/.bash_profile, unless it’s .bash_login or .bashrc).

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home

Then you’ll need to log into AWS console, and download your access and secret keys. While you’re there, download the EC2 CLI tools.

I install them into a custom directory. I like /opt, but your mileage may vary. You’ll have to change all the path declarations below, though.

Add the following lines to ~/.bash_profile (as above for Java)

export EC2_HOME=
export AWS_ACCESS_KEY=""
export AWS_SECRET_KEY=""

Next, download and install Amazon’s Elastic Load Balancer CLI Tools, and configure them by adding a couple lines to your ~/.bash_profile.

export AWS_ELB_HOME=/opt/aws/elb

Then download Amazon’s Elastic Beanstalk CLI Tools, which require Ruby 1.8.7 or greater, and Python 2.7 or 3.0 (both of which are pre-installed on Mountain Lion).

You will need to create an AWS Credentials File. I’m not sure what changed, and why these tools don’t use BASH environment variables, but I use ~/.aws_credentials. You’ll also need to do this if you use the RDS CLI tools.


And then you need to create a BASH environment variable pointing to the newly created file. Put this in ~/.bash_profile.

export AWS_CREDENTIAL_FILE=$HOME/.aws_credentials
export AWS_EB_HOME=/opt/aws/eb

If you want to use a different default region (instead of us-east), you’ll need to add this line to your BASH profile.


To install Amazon’s Relational Database Service CLI Tools, you will need to be sure to include the credentials file created above, and the BASH line to point to it. You will then simply need to add a couple more lines to ~/.bash_profile.

export AWS_RDS_HOME=/opt/aws/rds

That’s it. Your AWS environment is set up.

Back to work.

Filed under:


Poisoning the DOM By Thumbnailing a Video

I’m building a large-scale Content Management System (CMS) for Video, tied to a Content Delivery Network (CDN), and one of the big issues we’ve identified relates to the difficulty of thumbnailing video files which are loaded into our system with missing images.

HTML5 is great, and the good folks at have built a tidy little video player which enables us to display the video in a <video> element on the page. Flowplayer allows quite a lot of control over the video.

And, the wonderful <canvas> tag allows the developer to extract a thumbnail image, directly from that video.

function takeThumbnail() {
	$('#new_thumbs').prepend('<canvas id="thingamajigger' + cnt + 
		'" style="height:240px; width:428px;"></canvas>');
	var tc = document.getElementById('thingamajigger' + cnt);
	var v = document.getElementById('vidyo');

	ctx = tc.getContext('2d');

It would seem that all I have to do is call canvas.getImageData() to get a base64-encoded copy of the image, which I can then post to a server.

And, this works fine.

If the page, and the video are on the same server. I’m told that if the server hosting the image has the proper headers for CORS, then it works, too. Our CDN does not, so I cannot verify.

Anyway, when I try this with a video on my CDN, I get an exception (18) indicating that I have poisoned my DOM, and cannot access the resultant image programatically.

IMHO, this is stupid. Fucking hackers.

So, the solution, is the great folks over at Great API for doing this.

Filed under:


Colorado Doesn't Need The Death Penalty

Earlier this month, almost as soon as the Colorado legislative session began, the Denver Post reported that legislators may attempt to repeal the death penalty in Colorado. I hope they do.

I’m half-tempted to launch into a diatribe about morality, and how a single innocent person dying at the state’s hands, and… But, I won’t. I’ll simply say this.

We have a government, allegedly, by the people, for the people, and of the people. I’ll agree that sometimes in our history (maybe today), our government is less by/for/of the people than other times. People are messy, and a lot of the time we do things badly. Mostly, we mean well, and we try.

But, if government is by, for, and of, the people, when government kills someone - however much that person has done to earn it - government does so in our names. Government kills for us. The person killed is killed by us. The person killed is of us.

I understand the rage - anger enough to wish death upon someone. I’ve felt it. You’ve felt it. But, when the chips are down, I won’t kill someone, and, I suspect, neither will you. To allow the state to kill based on that rage is simply rationalization. If government is us, and government kills someone, then we killed someone. I did. You did.

“Why” is just the rationalization. “Why” helps us sleep at night.

It doesn’t make it right.

So, when, or if, a bill comes before him, I hope that my State Representative, Dave Young, a man I’d like to call my friend, can risk his job to prevent the State of Colorado from ever killing someone in my name - or yours.

Filed under:


Another Lesson For Online Fundraisers from Obama 2012

Filed under:


Lessons For Online Fundraising From Obama 2012

Filed under:


Election Prediction 2012

Well, tomorrow is the end of all that awful advertising. If you’re like me, you are really happy to be done with that. Here’s what I expect to happen tomorrow night.

  • President Obama wins with 303 Electoral Votes (OH, NH, CO, VA)
  • Presidential Election is called by 11pm EST
  • Elizabeth Warren wins MA-Sen
  • Claire McCaskill wins MO-Sen
  • Dave Young wins CO State House 50.
  • Democrats take control of CO House
  • Democrats maintain control of CO Senate
  • Colorado legalizes & regulates Marijuana for all
  • Cory Gardner (CO-04), and Oil/Gas Whore wins re-election (I predict this in 2014, too)

You heard it here, first.

Filed under:


You Will Have Only Yourself to Blame

Earlier today, David Sirota tweeted from Colorado, suggesting that our Secretary of State, Scott Gessler, is gearing up to be a pivotal figure in the coming election.

He’s right. In 2010, I was close to the Betsy Markey (CO-04) campaign, and heard regular polling information which showed two different things. Some data showed that challenger Cory Gardner was up solidly. Other data showed that the race with neck-in-neck. The difference between the polling was the “likely voter” models that the polls used.

I also heard a lot about how disappointed many liberals and long-time, activist Democrats were in Colorado’s 4th district. Lots of people were unhappy that President Obama and the Democratic Congress didn’t pursue Single Payer, or they caved on Banking Reform, or they didn’t close Guantanamo Bay, or some other issue. Andrew Romanoff even led a challenge to appointed incumbent Senator Michael Bennet, based on these thing.

All of this added up to the Republican wave in Colorado, which was only broken by Sen. Bennet’s effort to paint Weld DA, Ken Buck, his opponent, as anti-woman. Bennet won by about five-votes-per-precinct in Colorado. But, it was otherwise a horrible year for Democrats in the state, as we lost the state House, Treasurer, Attorney General, and two Congressional seats.

Basically, the GOP polls were right. Those polls indicated that many left-leaning voters were disaffected and would stay home. They did.

Fast forward to today. Sirota’s point that Gessler is in a position to play a pivotal role in our election, and possibly a nefarious one, is obvious.

What is not obvious is that the fact that Democratic-leaning voters stayed home led to Gessler’s success in 2010, and his positioning himself to be able to play a role in 2012’s Presidential election. And this illustrates a significant difference between the bases of the two parties in Colorado (or at least the 4th CD). The Republicans handle their angst in their primaries. The Democrats handle it in the general. If a Republican doesn’t like the incumbent Republican, they primary him/her, and then support the winner in the general. If a Democrat is unhappy with the incumbent Democrat, we stay home for the general.

And we let people like Scott Gessler get elected.

So, when Gessler is in a position to hand Colorado to Romney, please remember: you - the guy who didn’t vote because Obama or Bennet or Markey wasn’t liberal enough - helped elect Mitt Romney POTUS.

Filed under:


A successful Git branching model

A successful Git branching model »

In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management.

Filed under:


REST from Ruby. IBM Thoughts

Filed under:


Wanted: Internet-Entrepreneurial Government Affairs Organization

Last week, in the wake of the Internet-Entrepreneurial community’s celebration over the defeat of SOPA/PIPA, Joel Spolsky posted a great piece about the need for our community to become proactive about governmental and regulatory changes that affect our industry. He makes some sage points.

First, he and Marco Ament, in another article, point out that the defeat of this particular law will not really achieve anything. If there is one thing I must be understood, it’s that the powerful, the entrenched interests, are tenacious. This bill will be back, and the organizations pushing the bills will have learned from this episode. The idea that if big content can stop piracy it will save their models will return, and with greater force. We will lose this fight, if we don’t act now to change the dynamics at play.

I diverge from Spolsky where he bemoans the ill effects that money has on politics, and suggest that if our community offers candidates something better than money-for-tv, in the form of YouTube, or somethings, that we can begin changing the conversation. While agree that Lessig is right, about the corrupting power of money in politics, and about the general argument that huge, monied interests are basically able to buy and sell our government, I don’t see an answer to our problems - at least not in the near (read: next session of Congress) term.

Until the entire game changes, our focus needs to be on two things, playing the game as the rules set out now, and a concerted effort at demonstrating that we are not some rabble - a bunch of hackers in garages - but a community of serious, innovative, nimble, job-creators.

To achieve these ends, we need an industry organization which can follow legislation as it is introduced - not in the two weeks prior to a floor vote. That organization needs to provide unbiased information about the legislation to its members, and then must build strategy for supporting or defeating it. The organization also needs to identify members of both houses of Congress who are either our allies, or reasonable enough to give our positions serious consideration, and we need to support those members with significant money. As much as I hate to say it, that’s the way the game is played.

That’s the short term plan. I think we probably have a break for the next few months, while the business of Washington turns toward a presidential campaign, but once a new Congress is seated, we have got to be back on this.

I’m willing to take an early lead, starting a 501c(3) and (4), building some tech infrastructure for information sharing, etcetera, but this won’t have the slightest effect if this project is not “we” - with a fearsome board of directors, and some shared vision and direction. Who’s in (@lofdev)?

Filed under:

politics tech startups

Best Homemade Lobster Ravioli... Ever!

This recipe is epic. It’s as good as you can get outside a very nice restaurant - it might even be better than many. Basically, it’s lobster meat ravioli. Sometimes, rather than making actual ravioli, I’ll simply fold the filling into a sheet of pasta (a lasagna noodle, for example). This is the recipe I’ll put here.

Step One: Cook the lobster

This is really easy. Get a big pot, say 12 quarts or so. Fill it 2/3 full of water. Bring it to a roiling boil. Insert lobster. Cook it until you see the lobster’s innards seeping out and congealing. Take the lobster out and plunk it into some cool water, both to stop the cooking, and to make it easy to handle. I used 3 lobsters, each about 1-1.25 pounds. In my opinion, it’s better to use several smaller lobsters for this recipe, than to use one large one. And, make sure that the lobsters are not just alive, but active when you pick them.

Step Two: Lobster Stock

Lobster stock is one of those things that you’ll occasionally see in a recipe, and there is simply no way to substitute for it. None. Don’t make the recipe if you don’t have lobster stock. After this, however, you’ll have an amazing lobster stock.

Lobster stock during initial simmer

Keep that water, which you used to cook the lobsters earlier, boiling. Over a bowl, break off the cooked lobster claws, at the joint attaching to the body and set them aside (that’s the meat you want). Break off the tail where it joins the body, put that with the claws. Put everything else back in the boiling water - including the juice that came out as you were breaking parts off the lobster (remember you did this over a bowl?).

Now remove the meat from the lobster tails and claw arms, setting it aside. Keep all the shell bits, and any liquids which come out, and then add them to the boiling water. This will make a mess. Wear an apron.

Once all the lobster parts (but not the meat you took out) are in the boiling pot, take a minute and clean your workspace. Then add:

  • 2 medium-sized lemons, washed and sliced into rounds
  • 1 medium-sized bulb of fresh fennel (do not use seeds) cut into 1/2-inch pieces (it looks like celery a bit)
  • 1.5-2 cups roughly chopped (1/2-inch pieces) carrots
  • 1.5-2 cups roughly (1/2-inch pieces) chopped celery
  • 1 medium sized onion, roughly (1-inch pieces) chopped
  • 4 or 5 bay leaves (fresh is best - you can buy a bunch and store them in the freezer for a while)
  • 1 bouquet garni (two 4-inch pieces of celery tied together with 1 trig of rosemary, 3 twigs of thyme, and 3 twigs of tarragon)
  • 2 Tbsp of cracked pepper (I use a 4-pepper blend from Savory Spices, and then mash it in a mortar to break most of the corns, but without turning it into powder)
  • 2 Tbsp (or to taste) salt
  • .5g Saffron (I used Savory’s Persian Saffron, and really like it, but Spanish is good too)
  • 1 Tbsp Cayenne pepper

Boil this hard for about 10 minutes after you add everything, and then lower the heat and keep it on a slow boil for a long time. It’ll start smelling of the fennel, which is not immediately the best smell, but it’ll come together, I promise. I cooked this stock for about 6 hours, adding hot water to maintain the volume a couple times. Don’t let it get to less than 80% the original volume.

Finally, you’ll need another, similar sized container. Use a fine strainer and filter out all the lobster and vegetable parts by pouring the stock into other container(s). Rinse out the original pot and pour the strained stock back into the pot. Keep it warm.

Step Three: Ravioli Stuffing

Chop the reserved lobster meat into 1/4-inch chunks, or so. Melt a few tablespoons of butter in a large sauté pan. Sauté the lobster meat for a few minutes - you are flavoring the butter as much as cooking the lobster here. Remove and set the lobster meat aside.

Using the lobster-flavored butter, sauté all of a 10 oz package of fresh baby spinach. It won’t fit into the pan to start, but I’m always amazed at how much spinach you have to suaté to have a nice sized side dish.

Once the spinach is cooked, chop it up, and add it to the lobster.

Finely chop or shred some ricotta salata cheese into the mixture of lobster and spinach. I used 3 lobsters, and ended up with about a pound of meat, I added the 10 oz of spinach, and a light-pound of cheese. I like ricotta salata. It’s a harder, pressed variant of the cheese with a nice mouth-feel. If you can’t find it, or want to use regular ricotta, your measurements may need to change.

Step Four: Pasta Sauce

Start with 1 finely diced shallot and a couple sliced cloves of garlic. Sauté these in 3-4 Tbsp of butter. Add about 4 Tbsp flour to the sauté, and make a roux. Brown that for a few minutes.

Increase the heat, and slowly, while stirring the roux, add about 12 oz of lobster stock. Continue stirring until the sauce begins to thicken. Then slowly add another 12 oz of the stock, and stir until it begins to thicken. You want the sauce to be thick enough to coat the pasta - think bottled alfredo sauce - it may be important to add another couple Tbsp of flour, or a few ounces of stock at this point.

Add a big spoonful (2-4 Tbsp or so) of tomato paste to the sauce, and wisk it un until it is well distributed. Add some dried italian seasoning here. Reduce the heat to a slow boil.

Add 6-8 oz heavy table cream to the sauce. Stir and maintain the sauce’s consistency. Sauté for 5 minutes. Add salt and pepper to taste.

Add 2 oz cognac to the sauce. Stir until well integrated. Allow to boil for 30 seconds or so. Reduce heat to warm.

Step Five: Plate the ravioli and enjoy.

Place a cooked lasagna noodle on a plate. Put some ravioli stuffing (the lobster, cheese, and spinach mixture) on the noodle, and fold over the stuffing. Cover the noodle and stuffing with sauce. Garnish with some pecorino romano cheese, and green onion.


Filed under:


Tasty Puttanesca Sauce

Last night, dinner was a tasty homemade pasta puttanesca. A few people, after seeing my photo on instagram, asked for the recipe. So here goes.

What you’ll need:

  • 10-12 moderately sized, ripe Roma tomatoes (my Dad grew mine)
  • 1 Tbsp minced garlic
  • 2 Tbsp diced (haphazardly) shallots
  • 1 small yellow onion, coursely chopped
  • 2 Tbsp basil leaves (I grew mine, and like if cut as a chiffonade)
  • 1 Tbsp oregano leaves coursely chopped
  • 1/2 cup Kalamata olives, pitted and roughly chopped
  • 1/4 cup green olives, pitted and roughly chopped
  • 8 oz dried porchini mushrooms, rehydrated in Sauvignon Blanc, and coursely chopped
  • 500 ml Sauvignon Blanc
  • 250 ml Nero D’avola (or other dry red wine)

How to make this:

  • Skin, and coursely chop the tomatoes. With a sharp knife score the bottoms of the tomatoes. Boil some water. Put the tomatoes in the boiling water until their skins start pealing off. Remove the tomatoes, and immerse in cold water. Peel off the skins. Chop the tomatoes, and save the juice.
  • Sauté the garlic, shallots, oregano, basil in a bit of olive oil until the onion is tender, but don’t carmelize anything, and don’t let the garlic burn.
  • Add the chopped tomatoes, and turn the heat up to high. Sauté for a couple minutes.
  • Add about half the Sauvignon Blanc, and some water to the pan. Doesn’t really matter how much water - the important thing is to vigorously boil and macerate the tomatoes. I added about a pint.
  • While boiling the water & tomatoes mixture, use a spatula and mash the tomato pieces a bit
  • After the liquid reduced and almost gone, add the olives and mushrooms.
  • Add the rest of the wine, and some more water.
  • Reduce the liquid until it’s mostly gone, and dragging a spatula across the pan reveals the bottom of the pan for a few seconds, before the liquid moves back in.
  • Lower heat to warm until ready to eat.

The goal here is to have a little bit of liquid, but not so much that the sauce is runny. It’s better if there is no liquid than if there is too much.

Boil your favourite pasta and enjoy.


  • if you want to let this cook for a while, or if you misjudge how long the rest of your meal takes, just keep adding water to the pan, as the pan gets close to dry. As long as you’re boliing the liquid off, this shouldn’t affect your results. I can make this in as little as about 30 minutes, or as long as 4 hours.
  • You can skin the tomatoes well in advance.
  • A pinch of salt in your pasta water is useless. Put in a big handful. You’ll taste the difference, and thank me for telling you that.
  • Make sure to give the dried mushrooms ample rehydration time. They require at least an hour, but are better if they are given 4-5 hours.

Filed under: