Interview with Roku’s Nowhere Man

By  on  

If you have a Roku, you've surely heard of Nowhere Man.  He's created numerous Roku channels and is generally considered "the guy" in Roku app circles.  In the past year I've bought an AppleTV and a Roku, and I must say, I enjoy the Roku much more; a big reason for that being Nowhere Man's apps.  I was lucky enough to grab his attention and ask him a few questions about Roku development and where he stands on the AppleTV vs. Roku debate.

Chris Hagedorn works for Roku; opinions are all his own and don't reflect his employer.

Roku Nowhere Man

Introduce yourself; where you're from and your development background.

I'm a desert rat. I grew up in Yuma, AZ, the sunniest place on earth and lettuce capital of the world. My father taught computers and owned a software retail business when I was young, so I was exposed to technology early on and pretty much always knew I wanted to make a career out of it.

I have a BS in Computer Science and Engineering from Northern Arizona University where most of my formal training was in C++ and Java.

I spent several years after college working for big corporations doing both development and configuration management. I like to think that combination gave me an uncommon opportunity to see the development process from two different perspectives and the work I do today is better because of it.

When I got tired of big companies, I went to work for a small aerial photography and mapping company where I got to do lots of cool stuff with GIS and related technologies. And after a few years of that, I went to work for Roku.

You're known as a master Roku app developer, having developed around a dozen Roku apps. How did you start developing Roku apps?

It's a long story, but I love telling it. In 2005, before I'd ever heard of Roku, I bought a Roku SoundBridge and fell in love with it both for the hack-friendliness and the industrial design, it was a beautiful device. Later in 2005 there was a small house fire and my SoundBridge was melted and mangled, but kept working. When I emailed Roku support to ask about purchasing a new enclosure for it, they almost immediately offered to send me everything I needed for free. So I was a fan.

In 2008 when I saw the original Roku Netflix Player advertised on a Netflix mailer, I decided to buy one in large part because I knew the Roku brand and had such a good past experience with the company. At that point it played Netflix and nothing else, there was no public SDK or developer program. But when they did release an SDK, I couldn't help but start tinkering with it, that's what I do with pretty much every device I buy.

I started building channels for my own use, to get the content I wanted onto the box. It was mostly podcasts at first. I had a bit of a history with podcasting and consuming that content with the Roku seemed like a natural fit. I shared those early channels with the Roku user community just for fun and with their help and guidance, the project eventually morphed into Nowhere TV.

Could you give a brief overview of the process of developing a Roku app? What tools do you use and how can you design and test your app?

There is an official Eclipse plugin, but all you really need is a text editor, a zip utility, a telnet client, and a web browser. And a Roku, of course. Personally, I use TextWrangler and make.

Once you've written a piece of BrightScript, you zip your channel into a bundle with a particular directory structure and side-load it onto the Roku through a development console accessed by pointing a web browser at the box's IP address. Once a channel is side-loaded, you can telnet into the box to see the debug console, that's where you'll see any debug output from your channel and a stack trace if the channel happens to crash.

After you've done the side-loading and debugging cycle a few dozen times or more and you're happy with your channel, you go thorough a packaging process in the browser that encrypts and signs your side-loaded channel.

Once you have a packaged channel you can deploy it as a private channel immediately or submit it to Roku's approval process for inclusion in the Channel Store.

What's the most difficult part of creating a Roku app?

For me, it's bringing together the graphics for a channel. I've never been great with graphic design. For most developers, I think the hardest part is getting used to a new language. Roku development is done in BrightScript. If you've written VB or JavaScript, BrightScript will look familiar to you, but learning a new language can be a bit of a hurdle.

How difficult is it to manage stream connection, reconnection, and quality control?

There are some attributes of playback logic that can be tweaked in BrightScript, but for the most part those things are handled by the Roku firmware and developers generally don't have to worry much about them.

Nowhere TV boasts loads of pre-recorded content from many popular cable and network channels. How difficult is it to maintain this channel and how difficult is adding new streams?

Nowhere TV

Much if not most of the content in Nowhere TV is podcasts, which makes it fairly low maintenance. Adding a new podcast can be done in a matter of minutes. In fact users can add podcasts to their own Nowhere TV favorites pretty easily using a web based tool. I recently noticed a whole lot of new feeds being added by users of a German cloud DVR service that has apparently started telling their users how to add their DVR'd content to Nowhere TV so they can watch it on their Rokus.

The non-podcast content in the channel is more work to maintain. Those items are more like channels within a channel and each one has its own custom logic for communicating with its respective API. But overall I spend less than an hour a day maintaining Nowhere TV.

What could Roku do to improve the experience for app developers?

The thing I hear most often from developers is a desire for more documentation. But I've also heard developers say that Roku is one of the most thoroughly documented platforms they've worked on. I'm in the latter camp and I think part of the discrepancy has to do with the need to learn a new language at the same time you're learning a new SDK.

There are also a fair number of content owners who aren't necessarily developers at all attempting to build channels because they don't have the resources to hire a developer to build a channel for them. If you come to the platform with no previous development experience, the learning curve will be steeper. But that's true of any platform and I'm not sure what the solution to that situation might be.

Your Twitter profile describes you as an Apple fanboy; what's your take on Roku vs. AppleTV? Does AppleTV's lack of App store and openness of development cripple the platform?

It might be more accurate to say I'm a Mac fanboy. I love my Macs and I love OS X, but I'm not quite as rabid about other Apple devices. I have an iPad, which I adore, but I also had a Nexus 7 for a while and I use an Android phone that I like very much.

I've never used an AppleTV, but it seems to be most compelling for people who live in the Apple ecosystem and get a lot of their content from iTunes. That's becoming less true as they add more third party services to their platform, but for anyone who isn't heavily invested in iTunes content, Roku is the better choice.

I do think lack of a public SDK is holding AppleTV back. Some people might try to make the quality vs quantity argument, but I don't buy it. Roku has both with big players like Netflix, Hulu Plus, and Amazon plus tons and tons of niche content. Something for everyone. I watch plenty of Netflix, but all that niche content makes for some great "channel surfing". It reminds me a little of the experience of using a short wave radio when I was a kid and being fascinated by the idea that the sounds coming out of that little box had traveled half way around the world. That seems quaint now days, but I feel that same fascination sometimes when exploring all the stuff available on Roku.

What apps do you have planned for the future?

I don't think too far ahead about channels I want to do. I did a Google Music client over Thanksgiving weekend, but it hadn't really occurred to me to attempt it until a few days earlier. Often the channels I do come about when someone asks me whether it would be possible to bring a given piece of content to Roku.

That said, I have been thinking off and on about doing some sort of replacement service for the MediaFly channel that was discontinued a while back. Whether I will find the time to actually sit down and do it is yet to be seen.

Recent Features

  • By
    5 Ways that CSS and JavaScript Interact That You May Not Know About

    CSS and JavaScript:  the lines seemingly get blurred by each browser release.  They have always done a very different job but in the end they are both front-end technologies so they need do need to work closely.  We have our .js files and our .css, but...

  • By
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

Incredible Demos

  • By
    Fullscreen API

    As we move toward more true web applications, our JavaScript APIs are doing their best to keep up.  One very simple but useful new JavaScript API is the Fullscreen API.  The Fullscreen API provides a programmatic way to request fullscreen display from the user, and exit...

  • By
    Animated AJAX Record Deletion Using Dojo

    I'm a huge fan of WordPress' method of individual article deletion. You click the delete link, the menu item animates red, and the item disappears. Here's how to achieve that functionality with Dojo JavaScript. The PHP - Content & Header The following snippet goes at the...

Discussion

  1. Tim K

    Nice to get to know the man behind the nowhere. He’s a Roku hero :)

  2. Phil W

    Thanks for the insight about Nowhere Man and Nowhere TV, which is my most-watched Roku channel.

  3. James

    Nowhere man Rocks!

    I have both the Roku 2XS and an Apple tv HD. I hardly use the Apple TV at all, especially because it is so restrictive on what you can do. Roku and Nowhere TV take care of almost all of my needs. I am very happy with this product.

  4. Dinatekno

    Nowhere Man rocks! He’s right up there with YouTube, Plex & PlayOn as my go to channels. Keep on keeping on!

  5. jeannie scown

    I love Nowhere because when i have a problem (seldom) I get an email or a tweet. Amazing! Nowhere and I spend every morning together, and sometimes longer if I have a project near the tellie :-).

  6. Nowhere Man, is an inspiration for anyone that has ever developed a Roku channel. His channels are among the best and highly recommended for all Roku users. Wish we had more developers with his skills and willingness to share and help. Roku is an amazing platform and their willingness to open the platform to private channel developers are the reason it took off. It’s too bad that Apple can’t seem to get their heads wrapped around this concept with their Apple TV.

  7. jenny

    I do feel as though amazon + hulu on the roku is a bit of a misnomer in that both now have filtered their available content due to contractual obligations in hulu or amazon’s desire to promote their own brand issue of set top boxes.

  8. mijokei

    Bring back Al Jazeera and the BBC
    Why would the most reliable and professional world news channels be
    eliminated from your offerings and Nowhere TV in particular?
    Please bring them back. We need real news.
    We will even pay if needs be!

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!