Cutting the cable

We moved recently, and didn’t like any of the cable options in our new neighborhood (we’d go back to Uverse in a cold second if they’d only expand to Durham!). Frustrated and not willing to go with satellite, we took the opportunity to cut the cable as an experiment. We only ever watched a small subset of the cable lineup before, and the rise of video streaming services serve as a decent alternative to a DVR. Here’s how we piece things together, and how it’s going so far:

Hulu Plus. $7.99/month. The vast majority of the shows we watch are on the major networks, and so are part of Hulu. I’m still annoyed that the Plus service actually has less content than the free web version, but our TV has Plus support built-in, no extra box needed. The streaming quality is rock-solid in HD, and I don’t even mind watching the occasional commercial. Hulu Plus isn’t perfect, but is the clear leader in cost per episode of current-season shows.

Amazon Instant Video. $2-$3/episode. Our TV has Amazon Instant Video support built-in too, which serves as a nice supplement to Hulu. It would be too expensive to purchase all our TV this way, but it works well to fill in the blanks of what Hulu Plus is missing. AMC shows, BBC stuff, Community, etc. Their new free movie streaming for Prime customers is a nice bonus, but the catalog isn’t amazing yet.

Netflix. $8/month. We admittedly don’t use Netflix streaming as much as we used to, but it’s still king of movies and seasons of older tv shows. We currently have three different ways to play Netflix videos on our TV – Xbox, Blu-Ray player, and the TV itself has the service built in. They’re certainly king of device integration as well.

Broadcast. Free. Ah, the ‘ol rabbit ears! We pick up a surprising number of local stations, given that we’re just using an indoor antenna. We have some trouble getting our local ABC station, but somehow pick up the Greensboro ABC option just fine (it’s at least 50 miles away!). I’ve also discovered an odd gem – The Cool TV. They’re broadcast only, and show music videos 24 hours a day. Exactly what I’ve always wanted MTV to be!

We picked up a Roku box to handle streaming these services to our second smaller TV, and I’m really impressed with it. The realm of channels is amazing; Hulu, Netflix and Amazon are there of course. But there’s even live streams of BBC News’ UK channel and Al Jazeera English, which fascinate me to no end.

I think we save about $40 or $50 per month when all’s said & done. The future is now!

Dumbphone: Using a US smartphone to navigate Europe with RMaps

After we got married (!) last month Melissa and I spent 10 days in Europe on our honeymoon. London, Paris, and Rome! It was an amazing trip, especially since neither of us had been to Europe at all before. But this post isn’t going to be our amazing trip’s slideshow. On the more technical side of things, I was fascinated at the idea of using our smartphones (we both have a Motorola Droid on Verizon) in Europe.

A little background: not all US cell phones work in Europe. I’ll avoid the nitpicky details and just say that in general AT&T or T-Mobile phones will work in Europe, but Verizon and other carriers won’t. While we could still open and use apps on our phones, anything that required a cell network connection would be dead.

This distressed my inner techie – I’ve become hopelessly addicted to navigating with my phone’s google maps, and google maps pulls the maps over a cell connection. I really wanted to use it to find our way around. The one thing that still worked on the Droid in Europe is the GPS – it can get your position in latitude/longitude. But with no data connection It has no maps to plot that point on! All that Google Maps would show me is a blue dot on a grey background. Not exactly handy for finding my way.

But with a little foresight and pre-planning, I set up my Droid to cache the maps locally before we left for Europe. This process was a bit of a pain, because it’s not well documented anywhere that I could find. Here’s a tutorial: Continue reading

Mobile Site Generator Update: v1.1 (RSS feed parsing)

Last night I pushed out the first major update to the Mobile Site Generator. There’s one big new feature: It can now pull in content to a page from an RSS feed! This feature assumes your web server is running php with cURL enabled. If you don’t know whether your server meets these requirements, there’s one easy way to find out: Try it out 🙂

I consider this feature to be pretty experimental, so I’d love any feedback on how well it works and whether I’ve explained what it does well.

Note that this isn’t a feature you have to use. If you want, you can keep using the generator and pretend it doesn’t exist. I also recommend not using it more than once in your generated mobile site – pulling in multiple RSS feeds can slow down the page dramatically. I hope to build in some ways around this problem in the future.

I’ve been thrilled to see the response to the generator! I’m glad that people are finding it useful. If you’ve launched a site and used the generator at some point along the way, please let me know about it. I’d love to build a practical showcase of what this thing can do.

Mobile Site Generator

I’m really excited to launch a side project this morning that I’ve been working on for a while:

Mobile Site Generator

After filling out a form with page titles and few other bits of info, the generator spits out a fully functional mobile site (tested on iPhones, iTouches, and Android devices) ready for uploading to your server as an HTML file!

I’ve been asked a lot of questions about how we made the UNC Libraries’ mobile website. When I start to talk about the iUI framework we used, I see a lot of eyes glaze over. But it’s really easy! I’m not an expert coder, honest, and I made it work. Anyone who has basic familiarity with web development and a little time on their hands to puzzle out a few details can use iUI.

But while I’ve seen a lot of talk about mobile sites for libraries, I don’t see nearly as many actually implementing them. I think a lot of librarians are intimidated. But IUI’s code is actually so simple that I was able to automate its creation! The Mobile Site Generator will hopefully help people over the first hurdle: it creates a framework for a mobile site that you can then tweak & customize to you heart’s content.

As you’ll no doubt see immediately after clicking the link above, the MSG (gee, what a great acronym I picked!) has an interface that’s… shall we say less than ideal 🙂 I plan on making it prettier with time, but I wanted to get it functional and online in time to point it out in some presentations I’m giving in the near future.

There’s more information on what the generator does over on the MSG page. I welcome your comments and suggestions! You can leave comments here, on the MSG page itself, or just e-mail me.

Back to life, with news!

I’ve been much quieter here than I intended to be lately, and hope to revitalize my posting routine in the near future. But first, I have news!



Melissa and I are engaged!

I picked out a ring about 2-3 weeks ago, and had to wait for the setting to come in. I picked it up yesterday and decided I’d better make use of it before I hid it so well that I forgot where I put it 🙂

A little while back, Melissa and I built a mini cocktail arcade table out of an Ikea table and an old laptop. She loves it, perhaps even more than I do. Ms. Pac-Man is her favorite game ever, since she was a little kid. I decided to leverage these facts, and modified the game a bit. After the second level of Ms. Pac-Man, there’s a small little animated cut scene that plays. Here’s a low quality youtube version of it that someone recorded:

I turned it into this (sorry, there’s no sound in this video):

She saw it, was confused, said "what?", turned around, and there I was with the ring!

Oh, and she also said yes 🙂

I feel like the luckiest guy in the world today!

More details, for those who have asked me how I did the alteration:
Continue reading

Libraryh3lp – Javascript based IM reference service

My supervisor, Pam Sessoms, has spent years building up the IM reference service throughout campus at UNC. Up until recently, we’ve been using a combination of a custom Pidgin client and Meebo widgets to make the system run. But recently we swapped out the Meebo widget for a custom javascript-based chat widget that Pam and her husband have coded up on their own.

It’s still pretty early in development, but I think their ‘libraryh3lp’ system is an amazing step forward. For one thing, javascript has a much higher compatibility rate than Meebo, which relies on flash. I even got it to work on my iPod touch’s browser! It is also much better from an accessibility point of view, and plays nicer with screen readers for the visually impaired. Also also, the service runs on a custom Jabber server which gives the library much more internal control than relying on a third party network.

Eventually routing and queueing functions will be added, steering the product much more toward library-based usefulness than any of the IM clients currently out there. I’m really excited to see where this goes!
Here’s the project wiki:

And the Google Code page:

And lastly, you can sign up for an account and get your widget up and running with these instructions:

How to add a Meebo widget to a Facebook Page

UPDATE 5/18/12: These instructions no longer work. Click here for an updated guide.


With the release of Facebook’s new Pages system, libraries can now create an official presence not tied to an individual staff member’s account. But once created, options for what you can do with that page are still somewhat limited. For reasons I don’t entirely understand, not all Facebook applications that users can add to their profiles can also be added to a Page. As best I can tell, Application creators have to specifically allow this to happen in their options. And once they do, there are still a host of other issues that sometimes rear their heads.

One thing I really wanted to do was embed a Meebo widget in our library’s page, allowing users to IM a librarian directly from there. Of the two existing Meebo apps, one has not enabled the option and I can’t get the other to work right. So, here’s a temporary workaround:

Thankfully, Facebook has provided an app called Static FBML (FBML is the FaceBook Markup Language, the code that makes the magic happen). Essentially, this app is a blank slate. You can insert whatever custom code you like into it. We can use this to display a Meebo widget without too much difficulty:

Step 1: Add the Static FBML application to your Page.

Step 2: Edit the options. Go with whatever Box Title you like (I went with ‘IM a Librarian’).

Step 3: This is the meat and potatoes. Put this code in the FBML box:

<fb:swf swfsrc=''


width='380' height='300' />

(NOTE: A commenter pointed out that you may have to replace the single curly quotes displayed in the code with non-curly quotes to get the code to work right. I can't get my post to cooperate and display straight ones for some reason)

Step 4: Replace the X area with the link to your own Meebo widget.

Step 5: Replace INSERT CLICKTHROUGH IMAGE ADDRESS HERE with your own clickthrough image. Facebook will not display flash elements like a Meebo chat unless a user clicks on it. So you'll need to create an image your users see, telling them to click on it to initiate a chat. For example, here's what I'm using as my clickthrough:

Feel free to steal this image for your own use, just please host it on your own server and use your own bandwidth.

That should do it! Let me know if I can clarify anything here, as I'm just writing it off the top of my head. Hopefully this won't be necessary for long and one of the 'real' Meebo widgets will enable Page usage soon.

You can see this live on the UNC Davis Library Facebook Page (still heavily under development):

If you'd like to play with more custom content on your Page, Facebook has also created the rather aptly named Static FBML 2 and Static FBML 3 apps.