Archive for November, 2009

Authentic Kung Pao Chicken Recipe

After trying out a new Sichuan restaurant here in town, I remembered how much I love spicy Chinese cuisine.  Nothing is more quintessentially spicy Chinese than Sichuan (Szechuan) food.  One of the more famous dishes in this type of cuisine is Kung Pao chicken.  Now, don’t be fooled into thinking that American Chinese Kung Pao chicken is authentic!  Many recipes call for using, among other things, barbecue sauce, Worcestershire sauce, and ketchup.  I’ve put together a pretty authentic recipe below that will be as close as you can get to genuine Sichuan chicken.  Enjoy!

A note on ingredients
This is a dish that depends on the real ingredients below for the right flavor.  You can use some substitutes if necessary, but its certainly worth a trip to your local asian grocer to find the real things.

One thing to note about Sichuan Pepper (alternatively Szechuan Flower Pepper, Szechuan Peppercorns) is that they were banned in the US until about 2005, so can be somewhat difficult to find.  This amazing spice provides a lot of the unique flavor for the dish, so use it if you can find it.

Ingredients

  • 1 pound boneless chicken thigh meat
  • 1 red bell pepper, sliced
  • 1 onion, chopped
  • 3 green onions, sliced
  • 1 cup roasted peanuts
  • 6-8 dried red sichuan chillis
  • 1/2 pound mushrooms (white or crimini work well), quartered
  • 1 tbsp minced garlic
  • 1 tbsp Sichuan Pepper
  • 2 tbsp oil for cooking

For the marinade:

  • 2 tsp dark soy sauce (tamari)
  • 2 tsp Michiu rice wine (a chinese cooking wine)
  • 1 tsp Sesame oil

For the sauce:

  • 2 tbsp Michiu
  • 4 tbsp dark soy sauce
  • 2 tbsp Sesame oil
  • 2 tbsp rice wine vinegar

Cooking Instructions

  1. Cut the chicken into small cubes and combine with the marinade.  Let site for 30 minutes.
  2. Prepare the vegetables.  Slice the chillis into 1/2 segments and remove the seeds.  Combine the ingredients for the sauce and set aside.
  3. Heat 2 tbsp of oil in a large wok or frying pan on high heat.
  4. Once the oil is hot, add the garlic, chillis and Sichuan pepper.  Cook for about 30 seconds, until the garlic and chillis are fragrant.
  5. Add the chicken, and cook for 3-5 minutes.
  6. Once the chicken is opaque on the outside, add the bell pepper, onions and mushrooms and continue cooking for another 3-5 minutes.
  7. Before the vegetables are completely cooked, add the sauce and the peanuts, and reduce the sauce for a couple of minutes more.
  8. Once the ingredients have completed cooking, add the green onions and remove from the heat.
  9. Serve with immediately with rice.

Install Red5 + Xuggler on CentOS 5.x

A new project requires using Red5 and Xuggler on a CentOS virtual host.  Unfortunately, setting up both Xuggler and Red5 can be a bear on CentOS, because the default installation doesn’t come with Java.  So, I’ve put together a tutorial that should help you out if you’re trying to setup a Red5 system with Xuggler.

Step 1: Setup Java

CentOS will use the openJDK packages if you try to install java via YUM, but unfortunately, these packages have caused problems for a lot of users trying to install Red5.  I recommend using the Sun binaries, which now seem to work fine for CentOS.  First, you’ll want to download the most current JDK (note: it must be the JDK rather than JRE package) rpm binary package from this site:

$ cd /usr/src
$ wget $long_link_from_java_download_page$

Once its downloaded, make sure the filename looks something like ‘jre-xxxx-linux-i586-rpm.bin‘.  Next, make sure the binary is executable, and run it:

$ chmod a+x jre-6u17-linux-i586-rpm.bin
$ ./jre-6u17-linux-i586-rpm.bin

You’ll get a license agreement page, so hit the space bar until you get to the bottom, and type ‘yes’ to agree. Next, you’ll need to run the resulting rpm package:

$ rpm -i jre-6u17-linux-i586.rpm

Now, confirm that java has been installed correctly to /usr/local by running the ‘java -version’ command:

$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Server VM (build 14.3-b01, mixed mode)
$

If the command runs successfully, you’re all done with Step 1.

Step 2: Get ANT

Apache ANT is a build system commonly used for java projects.  ANT is required by both Red5 and Xuggler, so we’ll go ahead and get it installed.  The setup is pretty easy; first, download and extract the latest ANT binary:

$ cd /usr/src
$ wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz
$ tar -xzf apache-ant-1.7.1-bin.tar.gz
$ mv apache-ant-1.7.1-bin /usr/local/ant

Now, you need to setup the ANT_HOME environment variable:

$ export ANT_HOME=/usr/local/ant
$ export PATH=$PATH:/usr/local/ant/bin

Step 3: Setup Xuggler

The best way to get Xuggler is to download it via the current SVN trunk:

$ cd /usr/src
$ svn checkout http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler xuggle-xuggler

Once everything has been checked out (which can take quite a while), move into the xuggle-xuggler directory and set the appropriate environment variables:

$ cd /usr/src/xuggle-xuggler
$ export XUGGLE_HOME=/usr/local
$ export PATH=$XUGGLE_HOME/bin:$PATH
$ export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH

Next, begin the build by running:

$ ant run-tests

This will make all the native and java binaries and then run the appropriate unit tests on each. This can take a while (10 minutes on my server), so be patient. Ideally, all the tests should pass, but sometimes I’ve had certain MP3 tests fail. If you don’t plan on using the MP3 transcoding features of Xuggler, you can ignore these errors.  Next, install Xuggler:

$ sudo ant install

If everything went well, you should see a bunch of print outs indicating a successful install.

Step 4: Install Red5

Like Xuggler, the best place to get Red5 is the current SVN trunk:

$ cd /usr/local
$ svn checkout http://red5.googlecode.com/svn/java/server/trunk/ red5

Next, use ANT to build and install Red5:

$ ant prepare
$ ant dist
$ cp -r dist/conf .

If everything went well, Red5 should be installed and configured. You can test your install by starting the server:

$ ./red5.sh

and visiting ‘http://yourserveraddres:5080/‘.  If you get the screenshot below, you are good to go with Red5.

red5Step 5: Copy Xuggler to Red5

For Red5 to use the Xuggler library, you have to copy a compiled Jar to the red5/lib directory:

$ cp /usr/src/xuggle-xuggler/dist/lib/xuggle-xuggler.jar /usr/local/red5/lib

And with that, you should be all set to go! Just copy your Red5 app into the webapps directory and you’re ready to do some cool stuff with video.