Archive: March, 2006

Blow Up or Explode: Does it Matter?

In my grammar explode is an intransative verb. I would never say “He exploded the dynamite.” or “She exploded the bridge.” I would say, “She blew up the bridge, or in other words, the bridge exploded.”

Only recently have I found that I am in the minority, although I think most people use blow up more often than explode in their everyday speech. I seem to hear explode used much more often now than I used to. I suppose it’s to avoid ambiguity. I still don’t like the transitive use of explode.

I think I’ve always had this bias, but I think it was strengthened considerably while I lived in Germany. in German explodieren is intransitive, and translates to mean explode in English. If you want a transitive verb, you would use sprengen which, not surprisingly, means blow up. More research needs to be done to determine if the English transitive usage of explode is new or old.

In any case, I don’t like it.

Update: Transitive usage of explode goes back at least 400 years according to the Oxford English Dictionary.

The Lesser Light

Just two days after heavy rain and hail there is a beautiful moonrise just opposite the golden sunset.

Moonrise

I’m Never Peeling Another Potato Again

The Japanese seem to be lightyears ahead of everyone else on the technological front. It may not be so, cialis but it certainly appears that way when there are such evidences for everyone to see. Check out this video to see just what I mean.
[wp_youtube]37GVvxcyz6I[/wp_youtube]

Not Suitable for Curling Eyelashes

Caution, this product can burn your eyes.Krissy is going to be attending a gala put on by the company she works for. She decided that she wanted to curl her hair, and so she bought herself a curling iron. I’d have to say that this is the strangest warning I’ve seen in a while. I mean, if I’m worried about getting burned, my eyes are not the first thing I’d be worried about. I’ve never burned my eye before… ever. Whenever I see warnings like this I always wonder how many people it takes that complain that this specific warning was never stated anywhere with the product before they cave and just tie on a tag or stick a little sticker on it like this.

Curling irons are hot. hot things can burn you. If something says it can burn you, then it can burn you anywhere it touches your body. This obviously includes the eyes, although if you have a curling iron in your eye, then burning is not your only concern.

I’m not even going to go into the details of just how rediculously unhelpful that drawing would be to anyone who couldn’t read the text under it. When I covered up the text and showed it to Krissy, she thought it was a warning to watch the iron while it was plugged in because it is hot.

Record Streaming Audio with Linux: Part II

I said I was looking into getting FIFOs working so that the filesize requirements would be reduced. It’s also more efficient this way. I was heavily influenced by the two scripts created by Daniel Howard.

So here’s how it works. You get to create two scripts. The first one is for recording. It’s an all-purpose script that I called record.sh. Here is the code:
[bash]#!/bin/bash
#
# record.sh
#
# Use mplayer to capture the stream
# at $STREAM to the file $FILE
#
# example: record.sh my_radio_show 60 mms://someserver.com/stream

DIR=/home/shawn/PodCasts #directory where to save the file
TEMPDIR=/tmp

# Don’t edit anything below this line
#######################################################
DATE=`date +%d-%b-%Y` # Save the date as DD-Mmm-YYYY
YEAR=`date +%Y` # Save just the year as YYYY
NAME=$1
DURATION=$2 # enough to catch the show, plus a bit
STREAM=$3
TEMPFILE=$TEMPDIR/$NAME-$DATE
FILE=$DIR/$NAME-$DATE # Where to save it

# Capture Stream
mkfifo $TEMPFILE.wav
mkfifo $TEMPFILE-silenced.wav

# The lame settings below are optimized for voice encoding
# The sox command below strips out any silent portions
lame -S -a -m m –ty “$YEAR” –vbr-new -V 9 –lowpass 13.4 –athaa-sensitivity 1 \
–resample 32 $TEMPFILE-silenced.wav $FILE.mp3 >/dev/null &
sox $TEMPFILE.wav -c 1 $TEMPFILE-silenced.wav \
silence 1 0.2 0.5% -1 0.2 0.5% >/dev/null&
/usr/bin/mplayer -quiet -cache 500 \
-ao pcm:file=”$TEMPFILE.wav” -vc dummy -vo null \
-noframedrop $STREAM >/dev/null&

sleep 5
# get the pid of all processes started in this script.
PIDS=`ps auxww | grep $TEMPFILE | awk ‘{print $2}’`

# the & turns the capture into a background job
sleep `echo ${DURATION}*60 | bc` # wait for the show to be over
kill $PIDS # kill the stream capture
rm $TEMPFILE.wav
rm $TEMPFILE-silenced.wav[/bash]
This script takes three args:

  1. the name of the show you’re recording. This will be used in the final filename with the current date appended.
  2. the length of the show in minutes
  3. the URI of the stream (often mms:// or http://)

This integrates very well with another script that will hold all the data for the shows we want to record and automatically set the start times for us. Here is my script that I called today.sh
[bash]#!/bin/sh
#
# today.sh — schedule what programs you want to rip today using the
# recorder script.

# Non-obvious paths
RECORDER=$HOME/bin/record.sh
RECORDER_HI=$HOME/bin/record-hi.sh

# Set up stations
KFI=”http://a814.l1977144512.c19771.g.lm.akamaistream.net/D/814/19771/v0001/reflector:44512?MSWMExt=.asf”
WXNT=mms://wmc1.liquidviewer.net/WXNT
WPGB=”http://84.53.144.36:80/D/1046/20063/v0001/reflector:43803?MSWMExt=.asf”
KOZZ=mms://lotusradio-kozz.wm.llnwd.net/lotusradio_kozz

# What day is it?
TODAY=`date +%a`

# EVERY DAY
#everyday() {}

# WEEKDAYS
weekday() {
# “Record John_Ziegler for three hours, starting at 7:00pm.”
echo $RECORDER John_Ziegler 180 $KFI | at 7:00pm
echo $RECORDER Glenn_Beck 180 $WPGB | at 6:00am
}

# MONDAY
if [ $TODAY = “Mon” ]; then
# everyday
weekday
fi

# TUESDAY
if [ $TODAY = “Tue” ]; then
# everyday
weekday
fi

# WEDNESDAY
if [ $TODAY = “Wed” ]; then
# everyday
weekday
fi

# THURSDAY
if [ $TODAY = “Thu” ]; then
# everyday
weekday
fi

# FRIDAY
if [ $TODAY = “Fri” ]; then
# everyday
weekday
fi

# SATURDAY
if [ $TODAY = “Sat” ]; then
# everyday
echo $RECORDER Handel_On_The_Law 300 $KFI | at 6:00am
echo $RECORDER Dr_Dean_Edell 60 $KFI | at 2:00pm
fi

# SUNDAY
if [ $TODAY = “Sun” ]; then
# everyday
echo $RECORDER Jesus_Christ_Show 180 $KFI | at 6:00am
echo $RECORDER Glenn_Beck 180 $WPGB | at 10:00am
echo $RECORDER_HI Dr_Demento 120 $KOZZ | at 10:00pm
fi[/bash]
Using this as a template you might notice another script being referred to. record.sh has audio processing optimized for talk radio. For higher quality and stereo, you need to change a few things. You can download all of the scripts mentioned here at the bottom of this post.

To finish off this solution you need to run today.sh at some point after 12:00am and before the start of the earliest program you wish to record. I set mine to run daily at 1:00am.
[code]# Schedule recordings for today from radio streams
0 1 * * * /home/shawn/bin/today.sh >& /dev/null[/code]

Downloads: