# HiGuide 2.0: Fast and Slick



## shanew (Apr 11, 2003)

I've been having a play with the Google cloud/Google Web Toolkit and decided to try improving my original HiGuide module in order to get my hands dirty.

It still uses TivoWeb to serve the listings and channels. However, it does the absolute minimum by sending JSON data to the browser.

I have used GWT to do all the hard work in the browser. You can definitely see the recent advances in Javascript performance in such browsers as Chrome, Firefox and Safari.

There are a few odd querks when using it with IE but if you want to give it a try, PM me for the details. The prerequisites are:


TivoWeb running on port 80 (limitation from Google Appengine). It can work with or without the tivoweb built-in basic authentication.
Static IP or a router that can update a dynamic DNS service (e.g. dyndns.org)
Google account

To give you an idea of the performance, I seem to remember the old module would take around 30-40 seconds to load a full days listings. The new version will load an un-cached days worth in under 10 seconds and cached in 1-2 seconds.

Once a few people have confirmed it works okay for them i'll let the rest of you loose with the URL!


----------



## RWILTS (Apr 21, 2006)

I for one will be waiting for this release :up:


----------



## Cookiez (Feb 21, 2006)

Me too


----------



## shanew (Apr 11, 2003)

It's not very good quality but you can sort of see how fast the listings are loading. Each time it is loading a full day's worth. Towards the end I cancel a recording and then set it to record again.

This is all coming from Google cloud - not a test environment.


----------



## shanew (Apr 11, 2003)

My friend recommended CamStudio after seeing my appalling video taken with my phone!

So here is a better version (though the recording software must have used a lot of memory/cpu since the video isn't quite as smooth as before) 




Those that have tested were a little confused by the configuration needed. I've given google docs a go to show the architecture since it needs both tivo and your router to be setup correctly to work.

http://docs.google.com/present/view?id=ajhmsxf255hf_243fdvsv8ck


----------



## Rue (Apr 5, 2002)

This looks pretty neat.

I am comfortable with router configuration and port forwarding etc. but what I don't understand is the Google Cloud part.

What I really want to say is: I wouldn't want to open up port 80 on my firewall to all and sundry but I would be more than happy to restrict port 80 connections to my work IP address along with a TivoWeb password.

Alternatively, does the Google Cloud _proxy_ the http connection in order that I need to sign in to Google first and just open the 'allowed' http port to some of Google's IP addresses?

Apologies if this is going off at a tangent but HiGuide is something I could really benefit from and I'm eager to find a way of using it.


----------



## shanew (Apr 11, 2003)

Hi Rue,

The Google cloud helps considerably with the performance - it does this by pre-fetching the data from the tivo so it is not limited by your upload speed and the single threaded behaviour of tivoweb. - there are certain parts which it always gets on the fly (e.g. todo list and setting/cancelling recordings).

I agree, there is a security risk but I believe it is low, especially if you enable basic authentication in tivoweb. If someone seriously wanted to get into your network they'd find a way with whatever security you had - I think the interest is just not there for hacking into these old tivos.

However, I appreciate your concern and I've done some investigating. Unfortunately, google don't publish IP addresses calls can originate from see here. That said, if your router logs any incoming requests (like my netgear) you could easily add and update the IP addresses google use as they change.

A second option is to write a stand-alone server instead of piggy backing on tivoweb. This could implement a better security model than just Basic Authentication (which can be snooped). Unfortunately, my interest on this project was on the client side (GWT and AppEngine) and not the tcl.

Third option - There have been a lot of posts on here regarding reverse-proxys. Contrary to my first post, AppEngine is able to communicate with https (443) connections aswell as http (80) - if you have this setup, HiGuide 2.0 may work without requiring any changes. If I get chance to set this up on my linux server I'll let you know how I get on.

HTH


----------



## Trinitron (Jan 20, 2003)

Rue said:


> What I really want to say is: I wouldn't want to open up port 80 on my firewall to all and sundry but I would be more than happy to restrict port 80 connections to my work IP address along with a TivoWeb password.


Hundreds - no, thousands, if you count the US users - of people have done this to use the external access features of Tivoweb. With port forwarding to Tivo and basic authentication there isn't much to worry about.

If someone wants to hack my Tivo and rearrange the season passes they are welcome.


----------



## mikerr (Jun 2, 2005)

Trinitron said:


> If someone wants to hack my Tivo and rearrange the season passes they are welcome.


...or delete all your recordings ?

So long as you have at least basic authentication though, I don't see a problem.


----------

