# TiVo UI changed from Flash to Haxe



## tarheelblue32 (Jan 13, 2014)

I'm not a computer programmer and only have a superficial understanding of programming in general, but it sounds like the really big change in the summer update was "under the hood" with the TiVo UI now being written in Haxe instead of Adobe Air/Flash. 

I know that some of the people on this forum are computer programmers and know all about this kind of thing, so I was just wondering if you could break down some of the practical implications of this for us laymen. On first reports, it seems that the change did make the UI response time much better. Are there other benefits as well? Does it make the UI more stable in general? Does it make writing/porting apps to the TiVo platform (like Amazon Prime) easier? Any insights would be appreciated.


----------



## BigJimOutlaw (Mar 21, 2004)

A primary benefit is flexibility if your goal is write once, run anywhere. Judging from the development slides, I think the starting point was that native hardware Flash/Air support is only going downward from here. Tivo had to make new plans with an interest in being flexible because heck knows where they'll need their code to run in the future as they map out their Tivo-Anywhere stuff or partner with new MSO's. Haxe helps keep them flexible, which I think is the highest selling point. 

Being similar to AS3 (which was used to develop their Flash UI) probably didn't hurt and was beneficial in getting it to a largely completed state relatively quickly. I don't know if it helps them do anything new in particular, but it may help them get some things done quicker (cough, Android, Tivo Desktop, Roku.) Development speed has never been a Tivo strong point.


----------



## Dan203 (Apr 17, 2000)

I'm not sure they switched away from Flash completely. The Premiere hardware was based around Flash and I'm not sure the CPU has enough juice to run the UI natively. Although it looks like Haxe allows Flash as a target for the compiler, so maybe they are using Haxe to make the UI more hardware independent for future hardware or for porting to MSO hardware while compiling as Flash for current hardware.


----------



## gonzotek (Sep 24, 2004)

tarheelblue32 said:


> I'm not a computer programmer and only have a superficial understanding of programming in general, but it sounds like the really big change in the summer update was "under the hood" with the TiVo UI now being written in Haxe instead of Adobe Air/Flash.
> 
> I know that some of the people on this forum are computer programmers and know all about this kind of thing, so I was just wondering if you could break down some of the practical implications of this for us laymen. On first reports, it seems that the change did make the UI response time much better. Are there other benefits as well? Does it make the UI more stable in general? Does it make writing/porting apps to the TiVo platform (like Amazon Prime) easier? Any insights would be appreciated.


I don't know enough (anything) about Haxe to comment directly on the improvements, but I assume you've already seen this?
https://github.com/TiVo/wwx2014/blob/master/WWX2014.pdf

Seems like TiVo wanted to get away from Flash for the obvious reasons (Adobe isn't supporting it for embedded development going forward, performance, etc.) and with Haxe, they gained more control over the modren TiVo UI platform (named Encore?*). And some interface speed as well as potentially better developer tools to boot. Thanks for bringing this up, it's an interesting turn of events in the TiVo history file (to geeky me anyway). 

*First I'd heard of it, but this linkedin profile seems to backup a couple of the slides posted in the pdf above.


----------



## JosephB (Nov 19, 2010)

Dan203 said:


> I'm not sure they switched away from Flash completely. The Premiere hardware was based around Flash and I'm not sure the CPU has enough juice to run the UI natively. Although it looks like Haxe allows Flash as a target for the compiler, so maybe they are using Haxe to make the UI more hardware independent for future hardware or for porting to MSO hardware while compiling as Flash for current hardware.


I doubt the CPUs were designed specifically for Flash, and are able to run any code. Given the piss poor performance of Flash on many platforms, including x64 and x86, it was probably Flash causing the problems and not poor hardware.

I think this is a very good move, and it's especially encouraging because they were able to port TiVo to the Amazon Fire just by checking a box at compile time. Many, many possibilities for where TiVo could run now.


----------



## lgnad (Feb 14, 2013)

Dan203 said:


> I'm not sure they switched away from Flash completely. The Premiere hardware was based around Flash and I'm not sure the CPU has enough juice to run the UI natively. Although it looks like Haxe allows Flash as a target for the compiler, so maybe they are using Haxe to make the UI more hardware independent for future hardware or for porting to MSO hardware while compiling as Flash for current hardware.


look at the slideshow. Flash support is now a tiny slice of the pie.

The whole back-end is now native c++ code instead of flash. The UI and video stack are all Haxe/new code. The whole Flash and AIR backend is gone, with just a library to support flash, and the runtime is smaller. Frankly, I'm surprised we didn't gain more performance. Because Tivo had to develop some of the tools needed to complete the project, and this is essentially version 1, I bet more optimizations will be forthcoming.

The slideshow talks about converting the entire code-base over to Haxe over the past year, and rolling it out to current boxes. Apparently automated tools converted 85% of the tivo code in one whack, with the rest of the work having to be re-coded.

Im pretty psyched, this is exactly what they needed to do, rip out Flash/Air!


----------



## 9300170 (Feb 21, 2003)

lgnad said:


> look at the slideshow.


Where's the slideshow?


----------



## mrizzo80 (Apr 17, 2012)

9300170 said:


> Where's the slideshow?


https://github.com/kulick/wwx2014/raw/master/WWX2014.pdf


----------



## davezatz (Apr 18, 2002)

JosephB said:


> I doubt the CPUs were designed specifically for Flash, and are able to run any code. Given the piss poor performance of Flash on many platforms, including x64 and x86, it was probably Flash causing the problems and not poor hardware.


Both. From TiVo's own SDK a year or three back we discovered their choice of processor/platform didn't actually meet Adobe's minimum specs... debacle.


----------



## davezatz (Apr 18, 2002)

gonzotek said:


> *First I'd heard of it, but this linkedin profile seems to backup a couple of the slides posted in the pdf above.


He refers to Quattro 2.2 (in 2012), whereas TiVo's current build is called Quattro 3 based on this image name:

[media]http://www.tivo.com/assets/images_assets/Quattro_3_tv.jpg[/media]

RCN's Jason Nealis mentioned a 3.1 is expected in September with potentially more interesting end-user implications.


----------



## wmcbrine (Aug 2, 2003)

tarheelblue32 said:


> Does it make the UI more stable in general?


Not likely.



> _Does it make writing/porting apps to the TiVo platform (like Amazon Prime) easier?_


Not in any way that's apparent to an outsider. Maybe the HTML apps will run faster? I hope so... they're kind of intolerable on a Premiere with the old software.


----------



## HerronScott (Jan 1, 2002)

So has the Roamio been using Haxe all along? I don't recall that being mentioned but could have easily missed it since I haven't been in the market for one yet.

Scott


----------



## BigJimOutlaw (Mar 21, 2004)

Brand new with this release. The development started last summer around the time Roamio was already being readied for release.


----------



## [email protected] (Jan 8, 2008)

When TiVo started using Adobe Flash (which wasn't that long ago) I was surprised. Flash was proprietary, it was notorious for being buggy w/ a lot of security issues, much of its functionality was already being replaced by HTML5 on major platforms, and its only saving grace was that there were more Flash programmers available. It appeared to be a dead end. Haxe seems to obviate much of this, is open source and probably less of a lock-in solution for TiVo (e.g., it can be source-to-source compiled into JavaScript, C++, et al. and more flexible.)

I am cautiously optimistic about TiVo using Haxe. with the hope that it gets continued support & development so it won't be out-dated in a couple years.


----------



## monkeydust (Dec 12, 2004)

I'm hoping now that Haxe is in place, they can quickly convert the remaining SD menus to HD. From what I have read of Haxe, it seems similar to JQuery in its relation to Javascript (except it is not tied to one language).

Seems like a good platform for ease of use for those who aren't very familiar with the lower level languages.


----------



## BigJimOutlaw (Mar 21, 2004)

They also specifically mention HTML/JavaScript, iOS and Android as targets for the haxe code.

It'll be interesting to see how they re-optimize their app line. Once android streaming is resolved, they could do what they've already demonstrated on Roku and FireTV -- release a stripped down UI that basically makes tablets and PCs/laptops work as portable Tivos.


----------



## wmcbrine (Aug 2, 2003)

monkeydust said:


> Seems like a good platform for ease of use for those who aren't very familiar with the lower level languages.


Well, it's not a new platform, in terms of third-party development for the TiVo -- that's still HME or HTML5. If you mean TiVo's own engineers... I hope they're hiring better people than that.

The reasons for choosing higher-level languages aren't limited to lack of familiarity with lower-level ones.


----------



## Dan203 (Apr 17, 2000)

wmcbrine said:


> Well, it's not a new platform, in terms of third-party development for the TiVo -- that's still HME or HTML5. If you mean TiVo's own engineers... I hope they're hiring better people than that.
> 
> The reasons for choosing higher-level languages aren't limited to lack of familiarity with lower-level ones.


Exactly. Managed code is typically easier to port, which is it's main draw not it's ease of use. TiVo is looking ahead. This will allow them to more easily port their code to MSO supplied hardware and any future platforms they may release to retail. This is a good move for them from a business perspective and should make it easier for them going forward.


----------



## eboydog (Mar 24, 2006)

I wonder if they could rewrite the Tivo.com website in Haxe so that it could be faster?

Really, considering this is 2014 can't they make their website better?


----------



## aaronwt (Jan 31, 2002)

eboydog said:


> I wonder if they could rewrite the Tivo.com website in Haxe so that it could be faster?
> 
> Really, considering this is 2014 can't they make their website better?


That will happen after the Stream gets Android and all the TiVo screens have been converted to HD. SO somewhere between a few months and never.


----------



## jrtroo (Feb 4, 2008)

I imagine they have been putting a large amount of their programming resources on the Haxe transition. Now that the heavy lifting done, I'm thinking they can diversify onto android streaming, the website, cell streaming, and the pesky remaining SD screens.


----------



## rainwater (Sep 21, 2004)

jrtroo said:


> I imagine they have been putting a large amount of their programming resources on the Haxe transition. Now that the heavy lifting done, I'm thinking they can diversify onto android streaming, the website, cell streaming, and the pesky remaining SD screens.


AFAIK, TiVo has never developed their own mobile apps. Perhaps they have transitioned to using their own team but we have not heard anything about that.


----------



## sbiller (May 10, 2002)

rainwater said:


> AFAIK, TiVo has never developed their own mobile apps. Perhaps they have transitioned to using their own team but we have not heard anything about that.


I think they have moved some or all of the development inside. You may recall that TiVo's primary iOS developer was purchased by PayPal a few years back.

http://hire.jobvite.com/CompanyJobs/Careers.aspx?c=qMW9Vfww&jvcategory=User+Experience%2c+Research%2c+UI+Design&page=Job%20Description&j=oK5TYfwq


----------



## BigJimOutlaw (Mar 21, 2004)

Found the 1 hour video of Todd Kulick's Tivo/Haxe presentation. It might add some more color to the info offered in his PDF.


----------



## tarheelblue32 (Jan 13, 2014)

BigJimOutlaw said:


> Found the 1 hour video of Todd Kulick's Tivo/Haxe presentation. It might add some more color to the info offered in his PDF.


At 38:00, seeing the TiVo UI run on Amazon Fire TV to create a cloud DVR was interesting. I assume they could do the same thing on a Roku or Xbox.

I also noticed that he referred to the Roamio as a "Series 6" and the Premiere as a "Series 5".


----------



## jwbelcher (Nov 13, 2007)

tarheelblue32 said:


> At 38:00, seeing the TiVo UI run on Amazon Fire TV to create a cloud DVR was interesting. I assume they could do the same thing on a Roku or Xbox.


I'm super excited to use a Roku or FireTV native remote with the Tivo UI. Almost just as excited as relying on my phone as a remote control. This is the benefit of write-once run-anywhere...

However I did see FireTV will support 3rd party Bluetooth controllers. It would be pretty awesome to pair my old Slide to it. It would be even more awesome if I could just plug in the Slide Pro RF dongle in the USB port.


----------



## Dan203 (Apr 17, 2000)

The only way that a Roku or Amazon TV could actually watch video from a TiVo is if they used the Stream, as those devices only support H.264 encoding natively. Anyone who's used the Stream on an iPad knows that the controls are very limited. It's basically 8 second IR and 30 second skip. So I'm not sure a full TiVo remote would really be necessary.


----------



## wmcbrine (Aug 2, 2003)

BigJimOutlaw said:


> Found the 1 hour video of Todd Kulick's Tivo/Haxe presentation. It might add some more color to the info offered in his PDF.


Good stuff, thanks.

It bugs me that he keeps pronouncing it as "Hex". Maybe that's the community's preferred pronunciation, I dunno; but it makes no sense.

Obvious pronunciation: "Hacks"
Plausible alternate pronunciations: "Hacks-ee", "Haycks"
Impossible pronunciation under any known rules of English: "Hex"


----------



## BigJimOutlaw (Mar 21, 2004)

wmcbrine said:


> Good stuff, thanks.
> 
> It bugs me that he keeps pronouncing it as "Hex". Maybe that's the community's preferred pronunciation, I dunno; but it makes no sense.


It was like an itch I couldn't scratch.  Every other video resource I've seen called it "hacks". But anyway, it was interesting to watch.


----------



## jwbelcher (Nov 13, 2007)

Dan203 said:


> The only way that a Roku or Amazon TV could actually watch video from a TiVo is if they used the Stream, as those devices only support H.264 encoding natively. Anyone who's used the Stream on an iPad knows that the controls are very limited. It's basically 8 second IR and 30 second skip. So I'm not sure a full TiVo remote would really be necessary.


Stream might not offer scrubbing, hard to say. I could see them capturing frames during a recording to provide a preview when fast-forwarding and then allow the Stream to jump forward. Might look like the Netflix scrubber.

However, I'm thinking about all the other inputs used in the 10' UI for displaying the Guide, using channel up/down for paging, filtering the Guide or My Shows with A,B,C button, or using the skip button to jump around in My shows as being lost when using a FireTV or Roku native remote. I guess they could always do an on-screen pop-out remote, for use with the D-pad remotes, to overcome these issues.


----------



## moyekj (Jan 24, 2006)

Dan203 said:


> Anyone who's used the Stream on an iPad knows that the controls are very limited. It's basically 8 second IR and 30 second skip.


 What? I'm confused by this. The iOS App offers a scrub bar so you can jump to anywhere in the stream - in fact that's one of the major advantages of watching via the iOS app over watching on the TiVo itself. I must be misunderstanding your statement.


----------



## jwbelcher (Nov 13, 2007)

moyekj said:


> What? I'm confused by this. The iOS App offers a scrub bar so you can jump to anywhere in the stream - in fact that's one of the major advantages of watching via the iOS app over watching on the TiVo itself. I must be misunderstanding your statement.


For me its missing the frame preview while scrubbing. I guess technically not necessary, but for fast-forward / rewind getting those frames are helpful to know when to stop.


----------



## bji (Jul 22, 2003)

wmcbrine said:


> Good stuff, thanks.
> 
> It bugs me that he keeps pronouncing it as "Hex". Maybe that's the community's preferred pronunciation, I dunno; but it makes no sense.
> 
> ...


"hex" is an acceptable pronunciation, and if you do a google search you'll find that lots of people pronounce it that way, and that some even claim that it is the "official" pronunciation (although I think the claim is overblown as there isn't an "official" pronunciation that I am aware of).


----------



## BigJimOutlaw (Mar 21, 2004)

Anxious to see how Tivo evolves going forward, bji.  We're excited about the switch.


----------



## Grakthis (Oct 4, 2006)

Dan203 said:


> I'm not sure they switched away from Flash completely. The Premiere hardware was based around Flash and I'm not sure the CPU has enough juice to run the UI natively. Although it looks like Haxe allows Flash as a target for the compiler, so maybe they are using Haxe to make the UI more hardware independent for future hardware or for porting to MSO hardware while compiling as Flash for current hardware.


This would be my guess. So that now they can compile their UI into a different platform and run it on different boxes. They have already demo'd this, right? Running it on Amazon's hardware.


----------



## JosephB (Nov 19, 2010)

Dan203 said:


> The only way that a Roku or Amazon TV could actually watch video from a TiVo is if they used the Stream, as those devices only support H.264 encoding natively. Anyone who's used the Stream on an iPad knows that the controls are very limited. It's basically 8 second IR and 30 second skip. So I'm not sure a full TiVo remote would really be necessary.


You're assuming that is a limitation of the Stream itself instead of the client software to this point. You're also assuming that they can't buffer the video at the client and srub through it from the buffer.

We didn't see video when he was running it on the Amazon Fire TV, but he said it was "the same code" as a real TiVo box, so I assume it's probably closer to using the same APIs and interfaces as the Mini than the iPad app, and you can trick play and RW and FF just fine on a Mini.


----------



## daveak (Mar 23, 2009)

bji said:


> "hex" is an acceptable pronunciation, and if you do a google search you'll find that lots of people pronounce it that way, and that some even claim that it is the "official" pronunciation (although I think the claim is overblown as there isn't an "official" pronunciation that I am aware of).


Congratulations on your first post. Welcome to the forums. :up:


----------



## bji (Jul 22, 2003)

daveak said:


> Congratulations on your first post. Welcome to the forums. :up:


Thank you. I have been informed that as an employee of TiVo I should let you know that my comments never have and never will represent TiVo in any official capacity. They are simply my own opinions. 

But just so you know, we all pronounce it "hex" here, because we were informed when we started working with this technology that this was the generally accepted pronunciation, and at this point, it's second nature for all of us.


----------



## aaronwt (Jan 31, 2002)

???? so Haxe is pronounced "Hex"???

I would have never guessed that.


----------



## JosephB (Nov 19, 2010)

bji said:


> Thank you. I have been informed that as an employee of TiVo I should let you know that my comments never have and never will represent TiVo in any official capacity. They are simply my own opinions.
> 
> But just so you know, we all pronounce it "hex" here, because we were informed when we started working with this technology that this was the generally accepted pronunciation, and at this point, it's second nature for all of us.


Let me take this one opportunity to inappropriately derail this thread by jumping on the fact you're a TiVo employee. After this post I'll treat you just as if you were any other poster. 

I hope the Xbox client won't be hypothetical forever. The fact that it's a possibility is probably one of the biggest things I got excited about out of the Haxe slide deck. I'd pay to have Mini-like functionality on my Xbox.

Oh, and ESPN3, HBO Go and Amazon Prime streaming for Roamios. That's all


----------



## kulick (May 13, 2002)

aaronwt said:


> ???? so Haxe is pronounced "Hex"???
> 
> I would have never guessed that.


The language creator is French. When he says it, it sounds a bit more like 'ecks' to me, but I just say 'hex'. With any pronunciation, it's still pretty cool technology.


----------



## jwbelcher (Nov 13, 2007)

feeling the engineering presence today.. indeed very cool tech. can't wait to see what's in the pipeline.


----------



## JWhites (May 15, 2013)

Can someone do everyone a huge favor and update the Wikipedia TiVo website to reflect currently accurate information? http://en.wikipedia.org/wiki/TiVo_digital_video_recorders#Series4_TiVo_Premiere


----------



## JWhites (May 15, 2013)

bji said:


> Thank you. I have been informed that as an employee of TiVo I should let you know that my comments never have and never will represent TiVo in any official capacity. They are simply my own opinions.
> 
> But just so you know, we all pronounce it "hex" here, because we were informed when we started working with this technology that this was the generally accepted pronunciation, and at this point, it's second nature for all of us.


Careful, now people are going to yell at you when TiVo doesn't deliver on their deadlines.


----------



## JWhites (May 15, 2013)

daveak said:


> Congratulations on your first post. Welcome to the forums. :up:


Hope he doesn't get scared away like the last one. I miss TiVoBill.


----------



## bdraco (Aug 20, 2007)

Thanks TiVo & all the devs that worked on this. The UI is much more responsive. I'm very happy to see the change as I expect it will lead to faster and more reliable updates (not that I've had any problems lately).


----------



## Dan203 (Apr 17, 2000)

moyekj said:


> What? I'm confused by this. The iOS App offers a scrub bar so you can jump to anywhere in the stream - in fact that's one of the major advantages of watching via the iOS app over watching on the TiVo itself. I must be misunderstanding your statement.


I meant that it wont be able to offer the full TiVo experience, with 3 levels of FF/RW, skip to tick, etc... So it wont be exactly like the Mini.



JosephB said:


> You're assuming that is a limitation of the Stream itself instead of the client software to this point. You're also assuming that they can't buffer the video at the client and srub through it from the buffer.
> 
> We didn't see video when he was running it on the Amazon Fire TV, but he said it was "the same code" as a real TiVo box, so I assume it's probably closer to using the same APIs and interfaces as the Mini than the iPad app, and you can trick play and RW and FF just fine on a Mini.


It's not a limit of the Stream per say, it a limit of on the fly transcoding. There will always be a lag when you have to transcode from MPEG-2 to H.264. There are buffering and timing issues, plus the added overhead of two network transfers happening. And buffering wouldn't really work because any time you skipped beyond the edge of the buffer it would have to refill, and the bigger the buffer the longer that would take.

But there are some tricks I can think of that "might" be able to recreate the true TiVo experience. One would be to do FF in the decoder. (RW is a bit trickier) So basically the decode leg would FF just like a regular TiVo, only decoding the frames that would actually be displayed, and then feed those into the encoder as if they are consecutive frames. So as far as the encoder, and player, are concerned it's a regular stream playing at 1x, but what you'd see is the video playing at high speed like it's FFing. They'd have to use a relatively high bitrate though as the constant hard scene changes involved would trip up a low bitrate encode and you'd end up wit a smeared, pixelated, mess. The timing could also be a bit tricky to make it look smooth, but I'm sure they deal with that already just displaying FF on the TiVo itself. This also may not be possible depending on how the Stream hardware is designed and how much software control they have over the transcoding process. Although if the Stream can't do it they might be able to do it on the TiVo side by manipulating the MPEG-2 stream being sent to the Stream.


----------



## BigJimOutlaw (Mar 21, 2004)

WWX2015 (a Haxe conference) is happening this weekend. Tivo is there again this year, this time showing their Activity haxelib during a short and sweet presentation.

Bryan Ischo describes Activity as "a thread-like API that is portable across all targets. The idea being to allow developers to write code once that can take advantage of multiple threads for performance on platforms which support that, but still work on single threaded platforms like javascript."

It's a pretty code-specific topic, nothing like last year's big transition presentation, but if anyone's interested the conference is being live streamed. The presentation starts at 9:20 AM ET this morning. If you're awake yet. 

Stream: http://wwx.silexlabs.org/2015/

About Activity API: https://github.com/TiVo/activity

Full Schedule: http://www.silexlabs.org/wwx2015-schedule-and-speakers


----------



## davezatz (Apr 18, 2002)

Did they archive the two videos/sessions anywhere? And/or was there anything of interest beyond the programming stuff?


Sent from my iPad using Tapatalk


----------



## gonzotek (Sep 24, 2004)

davezatz said:


> Did they archive the two videos/sessions anywhere? And/or was there anything of interest beyond the programming stuff?
> 
> Sent from my iPad using Tapatalk


It doesn't seem to be up as of now, but it might get posted to the event organizer's youtube account:
https://www.youtube.com/user/Silexlabs/videos


----------



## BigJimOutlaw (Mar 21, 2004)

Todd started about 20 minutes early due to the previous presentation having a technical hiccup. So he switched places with them.

It was a purely technical presentation about the code, with a number of slides. Folks seem to think it's clever. I was watching for it, but there was nothing particularly newsworthy for non-programmers.


----------



## BigJimOutlaw (Mar 21, 2004)

I was noodling around a bit and noticed that Tivo added some more slides about Haxe. In particular, the "Haxe in the Enterprise" presentation shows an interesting summary of what's been happening in the last year since the Haxe migration started.

https://github.com/TiVo/wwx2015

Video of the presentation if you want some extra color.

And here's an article with some quotes from May:

http://haxe.org/articles/tivo-and-haxe/


----------



## mrizzo80 (Apr 17, 2012)

BigJimOutlaw said:


> I was noodling around a bit and noticed that Todd Kulick added some more slides about Haxe. In particular, the "Haxe in the Enterprise" presentation shows an interesting summary of what's been happening in the last year since the Haxe migration started.
> 
> https://github.com/TiVo/wwx2015
> 
> ...


I started playing the 2014 presentation video at the end of the haxe.org link. I skipped around a bit and landed around minute 55. He referred to the Roamio TiVo as being the current line known as "Series 6 boxes".


----------



## tarheelblue32 (Jan 13, 2014)

mrizzo80 said:


> I started playing the 2014 presentation video at the end of the haxe.org link. I skipped around a bit and landed around minute 55. He referred to the Roamio TiVo as being the current line known as "Series 6 boxes".


Yeah I noticed that too back when I watched it. I think he just misspoke.


----------

