Char Siu/Cha Shao Sous Vide

Note: this post was started over a week ago, but I didn’t get around to finishing it because I was having trouble uploading the final image from the WordPress App on my iPhone…

The experiments with ribs made me think about trying one of my other favorite forms of BBQ pork: Char Siu, aka Cha Shao. We called it the latter at home growing up, as my parents spoke Mandarin Chinese, even though the pork we got from San Francisco’s Chinatown was probably Cantonese in origin.

20140721-113413-41653073.jpg
I bought a 5.25 lb frozen pork shoulder at Rosenthal. After thawing it enough to get my knife through it, I cut it into strips about 1.5 inches wide/thick. These went into a marinade of semi-random stuff based on what was on hand, what is in various online recipes, and what I used for ribs. In no particular order and without proper measuring:
20140721-113413-41653372.jpg

20140721-113413-41653651.jpg

  • Brown sugar
  • Miso paste
  • Garlic powder
  • Hoisin sauce
  • Salt
  • Pepper
  • Soy sauce
  • Oyster sauce
  • Sherry
  • Water
  • Star anise, Cinnamon, fennel, ground cloves, Szechuan peppercorns (we are out of 5-spice powder).

This was used to marinate the strips in the fridge starting at about 2PM Sunday.

I took the meat out of the fridge and bagged it for cooking at 136F starting at about 11:30AM on Monday, after a conference call. This is a lot of meat! I had to use two bags and remove some water to keep the level below the max line on the Nomiku.
IMG_1171
I boiled the remaining marinade and stashed in in case I can think of another use before it goes off. Mixed some of the marinade with honey and basted the meat with the mix while broiling it to brown the surfaces. Froze some of the meat and used slices for stir fry. The marinade and the honey gave it a pretty nice flavor, but it lacked the red color of Chinatown Char Siu.

Sad news from Indiana Chemistry

A colleague just showed me that my former colleague Dave Giedroc is in this CNN video. While it is usually cool to see that one of your friends was interviewed, in this case it’s for the sad news that one of the victims in the Malaysia Air plane downing was a grad student in Dave’s department.

James Garner, RIP

Just heard that James Garner was found dead in his home at age 86. From the NYT obit:

Alone among westerns of the 1950s, “Maverick,” which made its debut in 1957, was about an antihero. He didn’t much care for horses or guns, and he was motivated by something much less grand than law and order: money. But you rooted for him because he was on the right side of moral issues, he had a natural affinity for the little guy being pushed by the bully, and he was more fun than anyone else.

“If you look at Maverick and Rockford, they’re pretty much the same guy,” Mr. Garner wrote. “One is a gambler and the other a detective, but their attitudes are identical.”

The Rockford Files was one of my favorite TV shows of all time. Garner’s ex-con private eye combined with an outstanding ensemble of peripheral characters and quirky plots from the team of Roy Huggins, Steven Cannell and Juanita Broderick made it a lot of fun. My friend Chip Morris and I used to talk about how Rockford’s appeal reminded us of the Samurai genre (which of course was influenced by Westerns). Garner’s Rockford was reminiscent of Mifune’s ronin from Yojimbo and Sanjuro, without the body count, but with a healthy dose of bushido.

Although Garner was a lifelong Democrat, we thought Rockford had a libertarian feel based on recurring themes of the dangers of out of control government enabling small and large abuses… even where intentions are arguably good. These ranged from the ongoing minor conflicts with Lt Chapman to the 1976 episode So Help Me God about Grand Jury abuse. 1979’s The Battle-Ax and the Exploding Cigar involves the FBI and CIA working against each other in a plot that anticipates the “Fast and Furious” scandal.

The Times compares Garner to Henry Fonda and Jimmy Stewart in his everyman appeal, and notes that he was one of the few stars to have success in both TV and movies.

Garner served in Korea, where he was wounded twice. Per wikipedia he described his Army role as being a “scrounger”, similar to his character in The Great Escape.

The missing Hobby Lobby reaction

I haven’t read all of the reactions to this past week’s Burwell v Hobby Lobby decision, so perhaps I missed this, but I haven’t seen much of what I thought would be an obvious reaction when I was much younger. This post is an extension of the comment I left at Althouse when the decision came down on Monday.

One of the saddest things to me about this situation is that the ACLU sided with HHS in the Hobby Lobby case. Growing up, I understood the ACLU as being centered around the idea in a quote from Roger Baldwin cited in this PBS piece on the Constitution:

Indeed, the only thing predictable about giving the government the power to censor speech is that it will use that power unpredictably. The founder of the American Civil Liberties Union, Roger Baldwin, put it well when he said, “In order to defend the people you like, you have to defend the people you hate.”

My approach to applying Baldwin’s big idea is to do the thought experiment based on how a ruling would apply if the politics/beliefs of the situation were reversed. How does this apply in Hobby Lobby? Living in Texas, it doesn’t take much imagination: less than a month ago the Texas GOP endorsed gay conversion therapy in it’s platform. Is it so hard to imagine an HHS mandate from a right-wing administration to include that in all employee health plans?

I expected  to see counter-hypotheticals like this in the coverage of Hobby Lobby, and it’s the kind of thought experiment I would have expected from the ACLU I grew up with back in the days of the Warren Court. Perhaps this argument is being made somewhere and I’ve just missed it. Perhaps progressives are OK with including such therapies in health plans. After all, no one would be forcing employers to make their employees use the conversion therapy; it would just be available for those who wanted it, as the IUDs and Plan B would be available to the subset of Hobby Lobby employees who wanted them. This story shows that people are not indifferent to whether or not others can choose this particular “treatment”.

The Supreme Court declined on Monday to hear a challenge to a California law that bans “conversion therapy” aimed at changing the sexual orientation of gay and lesbian minors.

The court, in rejecting the case, effectively let stand a federal appeals court ruling issued last August that said that the state’s ban on the practice did not violate the free speech rights of counselors or people seeking treatment. The appeals court had said that the state had an interest in banning professional treatments it considered harmful.

Alternative title for this post: the Parade of Horribles marches both ways. Happy Independence Day!

More sous vide ribs

Got a larger rack. Bagged with salt, pepper, brown sugar in the fridge on Sunday. Monday night, added soy, sherry, cider vinegar, garlic, red pepper flakes, and star anise and put into a 138F bath at 9:30 PM. The vinegar is a change from last time.

I cut the rack in half and put both halves in one 1 gallon ziploc bag (HEB store brand, actually).

I had planned on having these on Tuesday night, but there was a last-minute burger craving, so we went to Mickey’s Sliders instead. The ribs stayed at 138F for another day and we had them on Wednesday. I made another hoisin, ketchup, and sambal glaze and did two coats on each side under the broiler.

The ribs were more tender this time, with the meat falling off the bones as I sliced them. I actually like ribs both this way and how they came out last time where there’s a bit more resistance in a bite. Don’t know if the vinegar or the extra time was the difference. There wasn’t enough vinegar to impart a significant taste.

20140625-201829-73109193.jpg

WordPress shortcode plugins with multiple instances

I’ve been working on the JSmol2wp plugin used in these previous posts. There have been a couple of challenges associated with putting multiple copies of the JSmol viewer applet in the same post, and in having multiple posts with viewers.

The WordPress shortcode API doesn’t provide an obvious way for a shortcode to know its position in a post. For most shortcodes, this doesn’t matter; they return content to WordPress to put in place of the shortcode. The reason it’s important for JSmol2wp (and perhaps to other plugin developers) is that JSmol2wp needs to assign each applet a unique identifier so that commands are channeled to the correct applet. Googling “wordpress shortcode multiple instances” reveals other developers having the same problem.

My solution(s)

Various versions of JSmol2wp used variations on the same solution based on the idea that knowing the integer value for which copy of the shortcode I had is valuable. In hindsight, there are two easier solutions:

  • create a unique id that does not depend on anything else, based on something like a timestamp or an md5 of various passed parameters
  • make the user encode the uniqueID (I don’t like this one, but I ended up having it available as a fallback

The solution I used is to pull the entire content of the post and search for the shortcode markup  using either string functions or regexes. The current version is clunky because I was not sure whether PCRE was causing problems for some installations.

$p = get_post();
# determine the instance if there are multiple copies
# of the shortcode in this post
# we want to do this without preg_match to work on different PHP versions
$m = explode('[jsmol', get_the_content());
array_shift($m);
foreach($m as $i => $match){
     $t = explode(']', $match);
     # there could be nested shortcodes or other shortcodes in the text
     # but trim off what is safe to trim off
     if(count($t) > 1){
        array_pop($t);
        $match = implode(']]', $t);
     }
     # odd bug requires recasting as a string to get stripos to work
     $match = (string)$match;
     # catenate the post_id to the instance to make the id unique
     # when displaying multiple posts per page
     if( ($acc == '' || stripos($match, $acc) > 0 ) &&
        ($caption == '' || stripos($match, $caption) > 0) &&
        ($fileURL == '' || stripos($match, $fileURL) > 0) &&
        ($isosurface == '' || stripos($match, $isosurface) > 0) &&
        ($id == '' || stripos($match, $id) > 0)
     ) $this->instance = $p->ID."_$i";
}

This would be better with the right regex, but my regex skills are not that good at thinking about how to handle the possibility of [ and ] inside the parameters passed by the shortcode, since these are legal characters in Jmol scripting.

Note that the unique id includes the post ID. This prevents clashes when multiple posts are displayed on a single page.

The

 # odd bug requires recasting as a string to get stripos to work
$match = (string)$match;

was to fix a problem where spaces in one of the parameters (caption) caused stripos to return false, even though var_dump showed $match was already a string.

Sous Vide Pork loin and glazed carrots

Previously I did a pork loin with a coffee-chocolate rub. It was so nice that I thought I’d get another pork roast and experiment with another variation. This time it’s 2.5 lbs and I used a pot for the brining step. Getting a later start means a much shorter brine:

  • 2.5 c kosher salt
  • 2.5 c maple syrup
  • 1 q water
  • Thyme, ginger, a crushed clove of garlic

Brining started at 12:45.

Side of glazed carrots

20140622-133434-48874502.jpg 20140622-133434-48874794.jpgWhile the brining was underway, I set up the Nomiku at 183F to make a side of glazed carrots. I modified the recipe by adding some fresh ginger.

  • Peeled carrots cut faux-tournee
  • Slices of fresh ginger
  • Butter
  • Salt
  • Sugar

In the past, the problem with doing vegetables has been outgassing causing the bags to float. I wrapped a couple of knives in plastic wrap and put them in the bottom of the bag as a weight. This turned out to be not enough weight, so I enlisted a potato masher to hold the bag under. Started at 1:30PM

Turned down the heat at 2:30 and pulled the carrots. Into the fridge. The knives meant I needed to use an elongated platter. Clearly, the submerging the vegetables methods need some refinement.

Back to the pork

After 2 hours of brining, bagged the pork while the bath was cooling down to 138F. Final adjustment of the temp downward was easy – I scooped out some of the hot water and added back tap water. Into the bath at 2:45PM. Worked in the garden and watched the USA-Portugal World Cup game (If only Michael Bradley doesn’t turn the ball over in stoppage time!).

Glazing, browning, serving

20140622-205136-75096471.jpgMade a glaze of
20140622-205136-75096777.jpg

  • Maple syrup
  • Cider vineagar
  • Dijon mustard
  • Dash of Worcestershire sauce
  • Paprika
  • Pepper

Reduced over low heat until syrupy. Painted on the roast and caramelized under the broiler. Meanwhile, put the carrots in a saute pan and heated until the liquid boiled down to a glaze.  Added some parsley.

The liquid from the sous vide bag was used to dissolve the last bit of the glaze and a bit of the browned stuff from the broiler pan. This sauce was spooned onto the meat and some rice.

The pork was tasty and tender, and, as predicted, the maple-mustard glaze didn’t dominate the pork as much as the coffee/cocoa spice rub.  I think I might try butterflying a future roast to increase the surface area, though, to get more of the crusty browned parts. The carrots were excellent.

Sous Vide Lamb Shanks

The consensus of various posts seems to be 48 hours at 140-161F. But low end pictures all look a bit on the red side, so I’m going to up the temperature to 145. Started at about 8PM on Thursday night. Shanks were rubbed with olive oil, sprinkled with salt and pepper and put into a 1 gallon ziplock bag with a couple of sprigs of fresh thyme. I’ll update this post when I do more.

Dilute lamb stock

Got up Friday morning to find the water in the bath looking cloudy and the kitchen smelling like lamb soup. The bag had leaked overnight and was full of about quart of liquid. I think I made two mistakes:

  • Putting both shanks in one bag may have put too much stress on the bag
  • Not protecting the bag from the sharper parts of the protruding bones

I thought about how to deal with the second problem and ended up wrapping the ends with plastic wrap and securing it with twine. I put each shank in its own bag and returned them to 145F after changing the water twice.  I put the liquid from the bag into a pot to reduce.

Finishing

20140622-133211-48731146.jpg
Shanks come out of their bags

20140622-133211-48731473.jpg
Meat pulled from the bones

Saturday things looked good. I pulled the shanks around 6:30 PM while I was roasting some brussel sprouts as a side dish. I browned the shanks a bit in a saute pan with olive oil. This was not entirely successful as I had some sticking to the pan. This might be better on the grill or under the broiler. I added the liquid from the bags to the pot of reduced rescued liquids and deglazed the pan. I added some mustard, tomato paste, and some dried oregano and parsley. This was because the jus was not very flavorful on its own.

Overall it was nice, but I think it needed something. First, this might be more of a cold-weather dish. It’s pretty rich. Second, I think it would be good with some additional spices in the bag. I use star anise when I braise oxtails. I bet that would work. Or perhaps I should have brined them first or seasoned more aggressively during the sous vide step. The shanks are thick enough that the surface seasoning at the end really doesn’t penetrate… the browned bits were more flavorful. I don’t think the leak made the flavors more dilute than they might have been, but it couldn’t have helped.

Yet more testing of JSmol2wp

[jsmol acc=:adenosine commands=’adenine=load :adenine|||adenosine=load :adenosine|||guanosine=load :guanosine|||cytidine=load :cytidine|||thymine=load :thymidine|||uridine=load :uridine’]

This is a test of the isosurface capability using an xyz and jvxl file uploaded to WordPress media. Markup is: [[jsmol acc='s_den.cub_' type='xyz' caption='Load local file' isosurface='s_den.cub_.jvxl']]
[jsmol acc=’s_den.cub_’ type=’xyz’ caption=’Load local file’ isosurface=’s_den.cub_.jvxl’]

Linksys router speed problem solved

I was mystified at the painfully slow wifi I was getting at my mother’s house. She lives in Silicon Valley where decent speeds should be expected, but I was getting <1 kbps download on Speedtest.net. Weirder, the upload speed was 5-6 kbps. Via Google, this blog post explained the problem and solution, which is worse on Apple products. Changing one config setting increased the download more than 25x on my ipad.