• Heh - peak listeners on the TwitterGramCast is 2. The hack actually works, but there need to be more TwitterGrams flowing for it to be worth a full-time stream. But, if or when that happens... the technology will be ready. :)

  • Twitter vs Pownce: Whereas Twitter is a personal status broadcasting service that's grown various forms of P2P messaging as a side-effect, Pownce goes straight for the inter-personal messaging with broadcast as a muted theme.

  • Like TwitterGrams? Try my experimental streaming radio station.

  • The stream currently plays each TwitterGram as it rolls in to the twitogram feed. When nothing new is available, some MP3s of birdsong from the freesound project are used for filler.

  • I'm calling this thing TwitterGramCaster, and here's the code in SVN. It's the product of a night and a half of hacking to get out of a slump, and the documentation sucks so far. It's successfully run on my laptop (OS X), and on my server (Linux) - so I know it's relatively portable. To run it, you need icecast to host the stream and ices0 with embedded Python to provide a source for the stream. Other than that, I'll hopefully be more properly writing things up soon. Until then, enjoy the stream and explore the code.

  • The stream is very experimental, and might go away at any time. Hopefully, if it's not quite working right, at worst you'll hear a nice soothing stream of birdsong. I really need to add in a post-fetch processing stage to normalize volume of the TwitterGrams and whatnot, and I've got some thoughts about using some text-to-speech to announce each TwitterGram. Audio avatars might be an interesting idea too.

  • The main inspiration for this TwitterGramCaster hack comes from Russell Beattie's "Podcast Radio" idea, back in late 2004. I started poking around with implementing such a thing back then, but gave up. So, I picked up the pieces and got this up and running. Never played around with hosting an MP3 stream before, so this is pretty interesting stuff.

  • Weird. Of course, now that I've blogged about the TwitterGramCaster, the XML feed I'm getting off the Twitter API appears to be going stale for past hour or so. Nothing but birds on the station. That's not entertaining. Switching quickly to the JSON feed and watching what happens.

  • Hmm, no dice. The JSON feed looks stale now, and the XML feed has caught up. I wonder what the caching rules are on the API?

  • Ah hah: The Twitter API feeds, when fetched using authentication, seem to give fresh results. Of course, up until now, I'd ignored the line in the Twitter API docs which read: "With the exception of the public timeline, all Twitter API methods require authentication." So, I guess my attempts at anonymous calls were just vaguely humored with stale data.

  • Oh, and of course I skimmed right over the line in the API docs that reads: "Clients are allowed 70 requests per 60 sixty minute time period, starting from their first request". I was making a request every 30 seconds and got blocked now that I'm actually authenticating. Ugh.

  • I wonder if it would be more entertaining to loop the past hour or so worth of TwitterGrams until there's more of a steady stream, minimizing the amount of time spent in birdsong filler?

  • A tinfoil-hat Apple theory to giggle at: The iPhone's physical design was established before the first iPod ever came out. Then, a series of generations were "devolved" from there, each looking cruddier than the last. The first iPod to come out started with the cruddiest of all, and each iPod generation since then was given the next canned less-cruddy design until finally the iPhone was a practical project. Then, finally, the iPhone was given the best of the design series. This progression has allowed each upgrade of the device family to make the previous one look old-and-busted, driving a chain of compelling device purchases.

  • Hello world. Strange things are afoot at the Circle K.