Separate names with a comma.
Discussion in 'Developers Corner' started by davidblackledge, Jan 6, 2013.
That did it.
Updated beta is available for download.
changed key assignments (info for menu, aspect/zoom for mobile mode)
"thumztaks" is the new name for bookmarks
reload key (REPLAY)
CSS media type configuration
fix form submission for BUTTON tag buttons
only requires Java 1.5
batch file finds Java automatically.
I have downloaded your new version, but the auto-discovery was unable to find my java. So again, had to modify the .conf to see it manually and that is working for me.
rem thanks to http://chriskopec.com/blog/2009/jun/15/automatic-discovery-java_home-batch-file/
if "%JAVA_HOME%" == "" call:FIND_JAVA_HOME
echo JAVA_HOME: "%JAVA_HOME%"
rem Start Server
"C:\Program Files (x86)\Java\jre7\bin\java.exe" -Dcom.tivo.hme.sdk.debug.level=0 -jar EnterWebz.jar --launcher launcher.txt
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion') DO set CurVer=%%B
FOR /F "skip=2 tokens=2*" %%A IN ('REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%CurVer%" /v JavaHome') DO set JAVA_HOME=%%B
Darn, it worked for me. Maybe I can add some instructions for that case... the preferred fix is to set your JAVA_HOME system environment variable to (in your case) "C:\Program Files (x86)\Java\jre7" - the script is just trying to set that variable if you didn't already set it.
Setting that variable will help you with a lot of other Java batch files, too.
Thanks for letting me know!
Well without realizing you solved a major problem for us, we use youtube on tivo frequently but since the wishlist is not integrated for youtube one most continually type in search quiries. However with you giving us the thumblinks and it autosaves the name inquiry. Well that's just awesome so, Thank you. Now, call me stuborn but the one thing I wish could be replicated is adding "EnterWebz" as service instead of runing it manually.
The main reason I ask about Font Save, is level 5 is a pretty good setting on my HDTV. But it only saves it for that session, so naturally I have to "INFO" and set it again each time reload.
Could Kylo Browser but adopted into EnterWEBZ are is this opensource technology not cross compatable at this time?
Excellent, I had hoped that some missing features of the Youtube app would work this way!
If you use Galleon, it should be possible to let it host Enter Webz.
Also, I believe there are some programs on the Internet that can make a script run as a service... maybe I'll figure out how to include that with Enter Webz some day.
That makes sense... I think I will make it save the setting, then. FYI, you can just press the # key on the web page to change font size, so you don't have to press "INFO" for that feature.
That is basically like Chrome or Firefox (it runs on a PC), just made to show better on your TV. So, no, sorry, that is very far away from TiVo's HME which Enter Webz uses. ;]
Very cool! Nice work!
Is there any way to run this EnterWEBZ on a Mac OS system?
It's java, so it should work just fine. I got it running on Linux ...
Update is available for download
Added hme: thumztak default for Reversi game; support TiVoConnect relative URLs.
Better page formatting: implemented CSS Specificity rules, improved CSS inheritance.
Update to JSoup 1.7.2 with more CSS selector support; (JSoup 1.7.3 may get my request allowing better decision on internal vs. TiVos Video Player for long videos.)
First launch scripts for Linux, Mac. Added instructions for JAVA_HOME failure in Win.
Better list bullets: middot character for disc type, degree character for circle, filled square character (unsupported by font, so shows as an unfilled rectangle) for square and # for all number/letter bullets.
Improve display handling of back hint, backgrounds, image bullets, #section links
Font size changed through Information Menu is saved. Font size changed with # buttons on page is temporary, 0 reverts to saved size.
Added Maximize mode in Information Menu
Added Left also works as Back mode (on by default) in Information Menu (more natural for TiVo, but annoying for mistakes)
Added Password mode to hide text in TyPo keyboard; Fixed: text field direct entry with slide/USB keyboard didnt do capitals
Rudimentary FRAME/IFRAME support (converts to links)
Cookies for thumztaks are updated on quit (re-THUMB after login no longer needed)
Bug fixes (includes: post-redirect URL wasnt used for relative content, forms with multiple same-named entries submit better)
David you saved me again, yesturday the internal Youtube app went offline for maintenence or just went broke. i activated your batch file and was back in business in seconds. I can't wait to see how this new update stands out. I think I need to do some diggin to see about making it a service instead of running the batch. I've done it before, but lost the link that showed me how. I'll let you know if i find it.
If you're a Linux or Mac user, please let me know if the launch script works from this newest version!
Thanks... getting closer to a full release and a public server! ;]
Let me know any must-haves!
I tried the launch script ("Enter Webz.command?") on my Mac, running OS X 10.8.2 but got "Permission denied." Any help?
Thanks for trying it. I think I know what the problem is and it probably has the same problem in Linux. The "execute" permissions have to be set on the scripts. I think I know how to fix that for the next release.
In the meantime, I don't have a mac, but I think the instructions you need to add "execute" permission to the script are here:
using the "File : Get Info" window or "chmod" on the command line.
Can you get this webpage to work better:
It loads very slow and when I try to scroll it cause a blue screen error. I created a HME app that displays this page's information but if you are going to make a public server then I would like it to work so I can view the page even when my computer is off. Thanks!
This is a good example of a difficult page for Enter Webz... I've seen a few of them.
On my TiVo, the screen goes pink and many UI parts disappear, and it can crash. Something about the web page results in Enter Webz using up all of the graphics memory or other HME limits and things kind of freak out. I think this is always going to be a problem. I intend to optimize to reduce the times this happens, and maybe I can find out what the limit is and track it so I handle the case before it freaks out.
In the meantime, it "fixed" it for me when I turned off "table layout" (in the "info" menu). (for me, the UI button colors were wrong because of the "freak out" until after this was done). This makes every table cell show up vertically with the rest of the page, reducing how much is on the screen at once.
It might alternatively improve things to use a larger font size - that would also reduce the amount of stuff on the screen at one time. I suspect this is mainly a problem with how many images are displayed at once, though.
I do see there is a lot of room for optimization in Enter Webz, so I suspect this page will start working as soon as I get some of that done.
Have you considered rendering to an image and then just showing the image of the webpage on the Tivo? This would eliminate memory and resource issues. I did this a while back using HME for Python and the QtWebkit module that comes with PyQT. This makes the webpage look exactly like on a computer web browser. My webpage viewer updated the image every second for 640x480 and every 3 seconds for 1280x720. I was able to scroll but nothing else. I wanted to add other features but never got around to it.
Another method that works is rendering the full webpage to a bunch of images and string those images together when scrolling. This means the webpage is static but it is fast because you can just upload the images to the Tivo and just display and translate them when scrolling. You can still scroll through links using the position of the webpage elements and a little math. For sites like IMDB and the one I posted this is probably the best and easiest way to view the page.
BTW, I understand what you are doing is much more impressive than just rendering to an image but the Tivo only has a few resources and most webpages are going to use them up. What you might consider is keeping a list of resources on the computer and only rendering the resources that are currently visible on the Tivo screen. And removing or re-purposing resources as they leave the Tivo screen. This would limit the needed resources and probably increase loading speed.
One of my main focuses is running on a remote server. As part of that, I want to minimize network traffic to the server and minimize processing on the server as much as possible. For instance, I want to make the TiVo do all the webpage image work by just giving it a URL... that's why all the large or unsupported images don't work - I have no intention of ever proxying those images through the server to fix them. I definitely don't want to do ALL the work on the server then do the ADDITIONAL work of doing an entire image transfer every few seconds.
I also didn't intend this to be a general web browser, just the uses I mentioned in the first post. That said, I want it to work as well as possible for valuable-for-viewing-on-TV pages like yours.
After Enter Webz builds the data structures it needs, it renders one row of text and images at a time until it hits the bottom of the screen. When you scroll, the rows slide up the screen and the ones that go off screen are completely freed, except for image stream resources in case they're used again on that page. Everything is freed when you hit "back"... but not when you go forward (although the version of Bananas I'm using does free up old pages after you go forward about 10, and I could change that number)
Resource issues do exist, though. I have to build an additional view for every text style change in the row, for every image, for every background color, and for every background image. I also have one view to contain each row, one to handle focus for each link, several for each form field, etc.
I'm also using the Bananas toolkit to do the focus arrows which, I believe, adds a view for each arrow, for each focusable area... I could do something custom there.
I also want to consolidate consecutive rows that have the same formatting into a single large text-wrapped view. I could probably also consolidate link views... you've probably noticed that each change in formatting in the same link acts like a new link on the page.
Finally, according to the simulator, I'm creating views that I don't end up using in a number of places, so I need to find and squash those cases.
However, I suspect the major problems are
1) tables - necessarily more views at a time - basically treats a table cell as a new set of display rows, currently doesn't know how to stop rendering a table cell when it goes below the bottom of the screen - this is a major problem for some pages that put everything in a few giant table cells. Your page does this, too. Nested tables are an even bigger problem - my first attempts to handle that went badly. Instead it's sort of resetting when it hits a nested table.
2) too many views on screen at once... I believe 256 is the limit according to docs, but that was pre-HD docs - some limits have gone up, so maybe this did, too.
3) graphics memory limitations - http://tivohme.sourceforge.net/docs/hmesdk/04ProgrammingTechniques.html#wp1150653 may have changed in HD, too.
I'm probably violating several of these frequently. This is the hardest to get around and still render the page decently. It's also the harder one to check ahead of time.
4) repeating backgrounds - I'm currently stretching background images as a shortcut instead of repeating the same image over and over... in general that should save me a bunch of graphics issues, but I suspect that stretched images may take up extra memory or have some other dangerous side effects. They certainly cause major problems with the simulator, but the TiVo handles it better.
One thing I keep considering, however, is completely rewriting the rendering to use CSSBox - assuming I can get it to use JSoup for URL loading and my code to decide on Image and Font information per the TiVo box. It will figure out all the rendering using meta information and I could just render everything it says is in the current scrolled area, precisely how it would look in a real browser.
It wouldn't fix all the resource problems, but it would simplify the rendering to majorly reduce the number of views, and it may make it easier to analyze the result for graphics limitation violations. Plus the layout would be better and would handle nested tables.
I could be wrong but doesn't an image still get downloaded to the server then uploaded to the Tivo if you just supply a URL for an image? Looking at the HME Python code it opens the image's file and sends the data to the Tivo not just the filename. Maybe Java HME is different?
Anyways I do see your point about trying to keep bandwidth at a minimum. But if my assumption about images being downloaded to the server is correct then just uploading 1-5 1280x720 images of a webpage might be less bandwidth than uploading 10-20 images that haven't been resized to fit the page, plus all the text and tables.
You can specify an image as a Stream, as with audio and video. In that case the TiVo fetches it directly.