Down hard again

It appears that 757.org is down hard, except for IRC.  Because of this, I’m re-enabling the blog on WordPress.  Until I can find a (cheap) home for the wiki, it’ll be offline.

I’ve moved most of the posts from the old blog to here.  If I’ve omitted any that I shouldn’t, please point them out.

In the mean time, I’ll be playing with themes and plugins here.

Virginia Beach Hamfest 2013

I attended Virginia Beach Hamfest 2013 this weekend. Participation was a bit limited in that none of the major vendors attended. Notable this year was the absence of a MFJ vendor. I may need to switch to making my major purchases at FrostFest, vice the VB Hamfest.

The usual attendees were missing: Sparks (moved away), Tracy (moved away), and even Ethan and Matt. Was there something else going on elsewhere this weekend?

In any case, I was able to pick up a PowerGate and a RigRunner, both built by West Mountain Radio. I’m hoping that I can pick up the ISOpwr module at the next FrostFest. I’d planned on dropping this rig into the Invisible Car, but after the third rear-ender, coupled with the batteries crapping out, I decided to get rid of it. I’m hoping that I can get it into the non-hybrid Civic with not too much extra fuss.

After that, I only need a decent battery and a small Pelican case, and I should be ready for the next outage/exercise. Of course, there’s the usual tweaking planned (a small generator, a more-capable radio, etc.).

Note: I “borrowed” the idea for this rig from Chris Hosman (KC4F), who built a number of semi-portable rigs for the Hampton ARES group. Given that I do most of my comms on the road (antennas tend to irritate wife and neighbors), it looked like something that I needed to build for myself.

TWUUG’s Super Summer Saturday Meeting

Attended the Tidewater Unix User Group’s annual Saturday meeting (they normally are the 2nd Thursday of the month). Got rid of two of my books, picked up a new one as a door prize.

The talks were interesting, though turn-out was a bit thin (mostly the long-time members). I wasn’t planning on attending as I had intended to show up at either the North side or South side Makerspace Open Houses (the South side ended up with 60+ visitor). A last minute call from a friend changed my plans.

There were three talks, in addition to the usual before-it-gets-underway discussion. The talks were on podcasting, fldigi (amateur radio) (thanks Tracy), and eBooks (thanks Matthew).

Caught up with Dave S. on a few things that we’ve been planning. Now that I have most of the RPi/Z-Wave project out of the way, I can refocus on the digital signage projects. Finally had the chance to ask Mark D. what he was using for his sign. He indicated that the back end is just a bash script and indicated that someone was rewriting it in Python. Have been thinking what his statement implies and need to catch up with Dave S. again.

In any case, I need to get the backdrop in the office cleaned up again and get the podcasting rig dusted off. We may have some work to do in the near future.

Real-time meta data from Icecast using LiquidSoap (reprise)

I found a bug in my script. It pops up when there’s an apostrophe or a paren in the song title. Below, I’ve modified the script slightly to fix this issue. Also, I’ve changed the external program call so that it uses notify-send to pop up the song title on my desktop.

set("log.file",false)
set("log.stdout",false)
set("log.level",3)
def apply_metadata(m) =
title = m[“title”]
#print(“Now playing: #{title}”)
system(“notify-send #{quote(title)}”)
endradio = input.http(
user_agent=”joats/kludged-up-script”,
timeout=30.,
poll_delay=.5,
new_track_on_metadata=true,
force_mime=”audio/mpeg”,
buffer=.5,
id=”original”,
http://music.joat:8000/airtime_128”
)

radio = on_metadata(apply_metadata,radio)
output.dummy(fallible=true,radio)

For those that can’t see it, the changes are all in the line starting with “system”.

Real-time meta data from Icecast using LiquidSoap

One of the annoying things about trying to pull metadata from Icecast is that it’s a “pull”. This is typically cron’d and can be as much as a minute “late”. The following LiquidSoap script fixes this issue, allowing for a metadata “push”.

The following listens to an Icecast stream and only extracts the metadata. It does not forward any audio. The below becomes valuable when you want to post “Now Playing” data to digital signage, IRC, or Jabber channels.

set("log.file",false)
set("log.stdout",false)
set("log.level",3)

def apply_metadata(m) =
title = m["title"]
print("Now playing: #{title}")
# system("~/Desktop/mytest.bash '#{title}'")
end

radio = input.http(
user_agent="joats/kludged-up-script",
timeout=30.,
poll_delay=.5,
new_track_on_metadata=true,
force_mime="audio/mpeg",
buffer=.5,
id="original",
"http://music.joat:8000/airtime_128"
)

radio = on_metadata(apply_metadata,radio)
output.dummy(fallible=true,radio)

Note that there’s one line commented out in the above. It’s there as an example, for when you want to pass the variable to an external script. About the only other line you’d need to change is the one containing “music.joat”. Point that at your Icecast server.

Note: “output.dummy” is needed, to keep LiquidSoap from complaining that there’s no output defined.