Posts tagged with #radio

Dev Stuff

Long ago I wrote an open source ember addon for New York Public Radio called ember-hifi that powered their web audio applications, like,,, It was used and maintained consistently for years and years, and as ember evolved it lagged behind a bit. So I started a branch to bring it up to modern Ember standards, and really started thinking about it from the outside in, to try and lower the learning curve.

I find it tremendously useful to start with a interactive documentation site when building something like this, as the usability problems are easy to spot early. And building this one was no different. Naming things is the hardest part, and that stuff really jumps out at you when you’re trying to explain how to use it to someone else.

After all the updates I did to the project, the changes got too big to feasibly do a mega-pull request to NYPR as their apps were still running legacy version of Ember and couldn’t benefit anyhow. So I did a hard fork, renamed it and launched it.

Ember Addon active
Ember Stereo
Interactive Documentation active
Ember Stereo Docs
Dev Stuff

I just updated a gem I wrote in 2011 (which the FCC actually starred and forked, lol) to use their new API, which apparently knows about caching now. It doesn’t provide all the same data as the old one did, which is kinda weird. No “signal strength”? Why? So the gem can still query the old, horrifically slow and crusty API if you want it to.

station = FCC::Station.find(:fm, "KOOP")

if station.exists? && station.licensed?
  #Basic attributes, available quickly because the FCC actually caches these in a CDN: #=> 65320
  station.status #=> LICENSED
  station.rf_channel #=> 219
  station.license_expiration_date #=> "08/01/2021"
  station.facility_type #=> ED
  station.frequency #=> 91.7 #=> <struct FCC::Station::Contact>
  station.owner #=> <struct FCC::Station::Contact> #=> <struct FCC::Station::Community city="HORNSBY", state="TX">

  # Extended attributes, takes several seconds to load initially because the FCC is running this endpoint on a 1960s era mainframe operated by trained hamsters. 
  station.station_class #=> A
  station.signal_strength #=> 3.0 kW
  station.antenna_type #=> ND
  station.effective_radiated_power #=> 3.0 kW
  station.haat_horizontal #=> 26.0
  station.haat_vertical #=> 26.0
  station.latitude #=> "30.266861111111112"
  station.longitude #=> "-97.67444444444445"
  station.file_number #=> BLED-19950103KA
Ruby Gem active

I went to a programming meetup the other night, and they were running a contest for OSCON tickets—”tweet as us and mention OSCON and we’ll randomly select someone at the end of the night who will win a badge to the OSCON conference”. I hadn’t even heard of OSCON, but apparently it was an open source developers conference right here in Austin TX. ANNND the tickets were pretty expensive. “A valuable prize”, I thought.

But I hate whoring my twitter feed out, tweeting at things and mentioning brands. I follow people that have no problem with it at all, and maybe I should just relax. But nah, I don’t do that.

So I wanted to make the tweet funny enough to stand alone, and spent the duration of one of the less interesting talks crafting this gem:

Turns out the whole “randomly selected” thing was misleading, and it was more like “we’ll pick the one we like best.” I got chosen, won the badge, and had to tell the audience how 9 year old Jeff called into the radio without hearing what the giveaway was, and then got on the air and found out he won a perm. True story.

There was a pretty cool reddit story the other day about an internet stranger casually solving a huge song mystery for another redditor. After a year of the mystery lingering, one day a stranger sent a link to the song, and it blew the original searcher’s mind.

Oh my god. Oh my fucking god. I’m actually freaking out.
Who are you? How did you know? WHAT IS GOING ON?
Thank you so much. But also, WHAT THE HELL IS GOING ON

And the kind stranger just responded with:

Shh bby is ok

And, just like that, a meme is born. The internet is amazing, sometimes.

But I can totally relate to the poster’s original excitement. Sometimes a song just gets under your skin, and you’ll do anything to find it. Before the modern internet, finally locating a song felt just as satisfying, and I remember distinctly trying to hunt down the following songs in the following ways, and feeling just as excited once each of them was in my possession.


“Girl I’m Gonna Miss You”, by Milli Vanilli. I’d hear this on the radio, and the melody line in the chorus (1m 24s) rocked my little 8 year old heart so much I just had to find the geniuses who created it.

I called up the local radio station and hummed the melody on the phone in order to figure out what it was. I was gifted the tape by a family friend shortly afterwards.

(And listen, I realized the error in my ways regarding Milli Vanilli not much later. We all did. We all did.)


“Incense and Peppermints” by The Strawberry Alarm Clock. I heard this song in Austin Powers, and it blew my teenaged mind. I wanted more. More Strawberry Alarm Clock.

I searched far and wide for a recording of this song during Christmas break of ‘97, and had to go up to the Sam Goody in The Mall Of America in order to finally find the truth: that there was no available back catalog of Strawberry Alarm Clock, that they were basically a one hit wonder, and I’d have to settle for the Austin Power’s soundtrack. Which I did.


I heard this song every so often on the radio for months and months and months, and it would haunt me. I wanted it. But every time, the DJ would say nothing about it. I delayed plans and waited patiently in my Mom’s 1995 Dodge Neon for a song set to end, hoping to get a clue about the song that had been captivating me.

I tried to savor every second the song was playing, knowing it might be weeks before hearing it again. At night after getting back on the 1998 internet in my parent’s basement, I’d Altavista the shit out of the lyrics that I scribbled down earlier in my pocket-sized memo pad.

I don’t even remember exactly how I ended up finding the song, but I do remember that when I finally did locate the MP3, it was named incorrectly. I went around for years afterwards thinking the song was called something else, but I was also thrilled to have it.


Yesterday, I held up my phone up for a few seconds and it identified a Barbara Lynn song from 1963 that was playing on the radio.

I was satisfied.

Dev Stuff

The KUTX mobile experience was in a sorry state. It’s so bare-bones, it doesn’t even feel minimal; it feels broken. After a friend pointed out that the iPhone app was built using Cordova and Angular, and how easy it was to extract that source code from the .ipa file, I got to work. With KUTX’s first birthday coming up just around the corner, I figured a much improved iPhone app would be a great birthday gift.

Old app on the left, new app on the right, obviously.

Read the rest of this
Dev Stuff

Whenever I listen to 89.3 the Current, I hear a lot of great music I haven’t heard before, and want to hear again. Before this widget existed, I’d have to figure out what song was playing, and then manually add it to my list of songs to buy sometime.

Later, I’d go through the list and decide what to buy.

This widget makes this whole routine much, much easier. Hear a song you like? Click on the star icon, and it’ll get added to the back of the widget. When you’re ready to buy, click the arrow next to the song to buy it on iTunes, or Amazon (your choice)

Expand your playlist with a little less effort.

Project Release obsolete
The Current Widget