“Slow-smoked” baby back ribs

I made some ribs tonight.  Took about 3 hours to make and about 3 minutes to eat.

Preheat oven to 325F.

Dry rub:

* 1 part salt
* 1 part pepper
* 2 parts smoked paprika
* dash cayenne pepper (to taste)

Combine dry rub ingredients.  Remove membrane from ribs.  On a piece of aluminum foil, rub dry rub into the ribs.  Start with about 2 tbsp of dry rub per rack, but don’t leave too much excess in the foil (or the corners of the ribs will end up too salty).  Splash about 1 tsp of concentrated liquid smoke onto each side of the ribs.  Wrap ribs in two layers of aluminum foil as tight as you can get them without tearing.

Bake in oven on a baking pan for 1.5 hours at 325F membrane side up.  Flip over, then bake for another 1.5 hours at 300F with membrane side down.

BBQ sauce:

* 1 part salt
* 1 part pepper
* 2 parts brown sugar
* 8 parts ketchup
* 4 parts apple cider vinegar
* big splash worcestershire sauce
* light splash concentrated liquid smoke

Combine BBQ sauce ingredients.  Remove ribs from oven.  Carefully open up ribs and lay them on one layer of aluminum foil membrane side down (discarding one layer of foil).  Be mindful of the hot steam that will escape when you open the foil.  Cover topside of ribs with BBQ sauce, about 3 tbsp per rack.

Place ribs back into oven and broil on top rack of oven for 2-3 minutes, or until sauce on the top begins to caramelize.  Remove from foil and serve.

I gotta give props to Cheater BBQ for inspiration on this one.  Their indoor rib recipe is great, but I think mine is better. 🙂

Streaming mp3 server with NS-K330 NAS running SnakeOS

I just got a NS-K330 NAS off Deal Extreme, it’s a super cheap-o 3W network attached storage device.  Just add a USB powered HD and you’re ready to go.

The operating system that it comes installed with doesn’t do very much, so the good hackers over at SnakeOS have made a simple BusyBox-based distribution that you can use to replace it.  In 3 minutes you’ve got an embedded Linux server running ssh/sftp, ftp, samba, http.  Did I mention it only draws 3W?

Once I got SnakeOS installed I was disappointed to discover the embedded web server doesn’t support directory listings.  It does however support CGI scripting.  It took me a few minutes to put this together, but here are two scripts you can install in your web server /cgi-bin directory to enable directory browsing and automatic generation of m3u files for your mp3 collection:

#!/bin/sh
# Generates a directory listing, links directory to m3u generator
echo "Content-type: text/html"
echo ""
QUERY=`echo ${QUERY_STRING} \
| sed -r 's/%20/ /g' \ | sed -r "s/%27/'/" \
| sed -r 's/^\///'` echo "<h2><a href=\"/cgi-bin/m3u?$QUERY\">/$QUERY</a></h2>" ls -l "../$QUERY" | grep ^d \
| awk '{$1=$2=$3=$4=$5=$6=$7=$8=""; print $0}' \ | sed -r 's/^[ ]+//' \ | sed -r "s/^(.*)$/<a href=\"?$QUERY\/\1\">\1<\/a><br>/" ls -l "../$QUERY" | grep -v ^d \
| awk '{$1=$2=$3=$4=$5=$6=$7=$8=""; print $0}' \ | sed -r 's/^[ ]+//' \ | awk "{printf(\"<a href=\\\"/$QUERY/%s\\\">%s<br>\", \$0, \$0);}"
#!/bin/sh
# Generates m3u from query parameter
echo "Content-type: audio/mpegurl"
echo ""
QUERY=`echo ${QUERY_STRING} \
| sed -r 's/%20/ /g' \ | sed -r "s/%27/'/g" \
| sed -r 's/^\///'` find "../$QUERY" -name *.mp3 \
| sed -r 's/\.\./http:\/\/192.168.0.11:8080/' \ | sed -r 's/ /%20/g'

Not the cleanest of scripts, but it gets it done.  BusyBox doesn’t have a complete “find” implementation so this kinda limited what I could do.

As I’m writing this it does not appear this system is the most robust of web servers… Both WinAMP and Windows Media Player are seizing up part way through songs and reporting network errors. Hmm. I guess for $40 I can’t complain.