Unoffical empeg BBS

Quick Links: Empeg FAQ | Empeg Wiki | Latest Software | RioCar.Org | Hijack | jEmplode | emphatic
Repairs: Repairs | Addons: Home Docks | Sleds | Lenses | Buttons | Eutronix | Tuners | Cases

Page 1 of 3 123>
Topic Options
#297459 - 24/04/2007 18:12 Dumb Javascript Question
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Greetings!

I use a hybrid of a few different interfaces as a web front end to my office empeg. This front end is basically a flat HTML page intro screen, with a graphic of the player and what is playing, leading to a selected hijack playlist. Normally, this graphic updates with the screen data from /proc/empeg_screen.png.

This works fine under older IE and older Firefox. But Firefox 2 and IE7 no longer autorefresh the screen graphic. A snooper on the network is not showing a GET to the player. The timing loop works fine for other graphics and alert popups (used to test the logic), but I cannot figure out why this one graphic would be a problem. Especially since it works fine in IE6...

Clue, please... Attached is the html / javascript. The css is for font settings and opacity. Nothing special, but I cannot see why it is not working with Firefox 2 or IE7...


Attachments
298202-wk.html (151 downloads)
Description:



Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297460 - 24/04/2007 18:18 Re: Dumb Javascript Question [Re: pgrzelak]
tfabris Administrator Offline
carpal tunnel


Registered: 20/12/1999
Posts: 27576
Loc: Seattle, WA
Is the browser caching the image and just not bothering to go fetch a new one? Is there a javascript command to deliberately override the cache when you do a page refresh?

Or, alternatively, isn't there a way to edit the HTML page to tell the browser to ignore the cache when reloading?

Top
#297461 - 24/04/2007 18:23 Re: Dumb Javascript Question [Re: tfabris]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
I do have nocache statements (Pragma:no-cache and Expires:-1) in the HTML. If I use any other image (example - a blank screen), I can see it reloading the other image repeatedly with my snoop.

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297462 - 24/04/2007 18:42 Re: Dumb Javascript Question [Re: pgrzelak]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Hmmm... Could it be a timing issue, where I am reading the empeg_screen.png file while it is being written? I put a second image in that display loop, and it executes for a random amount of iterations before stopping without any error indication.

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297463 - 24/04/2007 19:10 Re: Dumb Javascript Question [Re: pgrzelak]
tfabris Administrator Offline
carpal tunnel


Registered: 20/12/1999
Posts: 27576
Loc: Seattle, WA
Until Mark chimes in with the correct answer, have you peeked at the source code to CharcoalGray99's interface? I know that it also doesn't work on IE7 or Firefox, but perhaps he's doing something differently that might be portable.
Top
#297464 - 24/04/2007 19:33 Re: Dumb Javascript Question [Re: tfabris]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
I have. In fact, that is where I stole a lot of the javascript reloading and images from.

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297465 - 25/04/2007 09:45 Re: Dumb Javascript Question [Re: tfabris]
LittleBlueThing Offline
addict


Registered: 11/01/2002
Posts: 440
Loc: Reading, UK
I think this may help:
http://www.theserverside.com/discussions/thread.tss?thread_id=32410

Last answer:
The answer to this problem is simple and a bit strange

use headers in lowercase for firefox works in internet explorer too..

for example:

Response.AppendHeader("pragma", "no-store,no-cache") ' //HTTP 1.0
Response.AppendHeader("cache-control", "no-cache, no-store,must-revalidate, max-age=-1") // HTTP 1.1
Response.AppendHeader("expires", "-1")

Checked khtpd.c and indeed they are being sent nicely Capitalised...

I'll patch my kernel and try it...

LittleBlueThing Running twin 30's

Top
#297466 - 25/04/2007 10:21 Re: Dumb Javascript Question [Re: LittleBlueThing]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Interesting!!! This raises up some possible causes with the version of http protocol. I have to experiment...

Meanwhile, changing the header lines to...

<META HTTP-EQUIV="pragma" CONTENT="no-store,no-cache">
<META HTTP-EQUIV="cache-control" CONTENT="no-store,no-cache,must-revalidate,max-age=-1">
<META HTTP-EQUIV="expires" CONTENT="-1">

...did not produce any noticeable difference. The test image display_blank.png reloads properly, repeatedly, while the empeg_screen.png does not.

function RefreshScreen()
{
document.images.namedisplay.src = "images/display_blank.png";
document.images.namedisplay.src = "proc/empeg_screen.png";
setTimeout('RefreshScreen()',5000);
}

A snoop on the network shows:

Using device /dev/hme (promiscuous mode)
client -> empeg HTTP GET / HTTP/1.1
client -> empeg HTTP GET /images/default.css HTTP/1.1
client -> empeg HTTP GET /images/fascia_left.gif HTTP/1.1
client -> empeg HTTP GET /images/fascia_top.gif HTTP/1.1
client -> empeg HTTP GET /images/display_smoke.png HTTP/1.1
client -> empeg HTTP GET /images/fascia_right.gif HTTP/1.1
client -> empeg HTTP GET /proc/empeg_screen.png HTTP/1.1
client -> empeg HTTP GET /images/fascia_bottom.gif HTTP/1.1
client -> empeg HTTP GET /images/display_blank.png HTTP/1.1
client -> empeg HTTP GET /images/display_blank.png HTTP/1.1
client -> empeg HTTP GET /images/display_blank.png HTTP/1.1
client -> empeg HTTP GET /images/display_blank.png HTTP/1.1


Edited by pgrzelak (25/04/2007 10:24)

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297467 - 25/04/2007 11:43 Re: Dumb Javascript Question [Re: pgrzelak]
andy Online
carpal tunnel


Registered: 10/06/1999
Posts: 3939
Loc: Surrey, UK
It is likely that different HTTP headers are being set by the webserver on the empeg for the two different png files. The different headers will be causing different caching behaviour for the two different images.

You could try requesting "proc/empeg_screen.png?timestamp" where "timestamp" is a value that changes each time you request it. I haven't checked to see whether Mark's webserver handles requests like that though.

Remind me to change my signature to something more interesting someday

Top
#297468 - 25/04/2007 11:51 Re: Dumb Javascript Question [Re: andy]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Greetings!

Some more testing shows some rather interesting behavior. While working with the Firefox DOM Inspector, I found that if I have two instances (tabs or windows) of the exact page up in Firefox, they update properly. Closing one of the windows or tabs reverts back to the previous behavior.

I will have to try throwing a parameter afterward. I suspect it is ignored as long as there is nothing after it (at least, that is the behavior I see in the browser so far).

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297469 - 25/04/2007 12:00 Re: Dumb Javascript Question [Re: pgrzelak]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Well, the server will not accept anything after the "?", so that is moot. Also, I tried alternating the timer with a plain empeg_screen.png and one followed by a ?. No luck.

At this stage, I think the browser is still caching the image somehow, and having two instances of the browser is forcing the issue by being slightly out of sync. One interesting note is that IE7 tabs display two different screen images, but neither refresh.

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297470 - 25/04/2007 12:19 Re: Dumb Javascript Question [Re: pgrzelak]
andy Online
carpal tunnel


Registered: 10/06/1999
Posts: 3939
Loc: Surrey, UK
The meta tags in the page will not have any effect on how images linked from the page will be cached.

Remind me to change my signature to something more interesting someday

Top
#297471 - 25/04/2007 12:27 Re: Dumb Javascript Question [Re: andy]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
So, basically it comes down to a local image caching issue. And if the meta tags in the code do not modify behavior for the images contained, it would be a matter of forcing the header through the web server itself. Hmmm... Time to start looking at some of the style sheets and configurations for hijack...

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297472 - 25/04/2007 15:12 Re: Dumb Javascript Question [Re: pgrzelak]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Paul,

I just spent a couple of hours fiddling with this, and it's entirely a browser issue. Nothing really works other than feeding unique URLs to Firefox each time. So, Hijack v470 is now available, with support for a "IGNORE=xxxxx" parameter that you can use in the URLs. Eg. Code:

document.images.image1.src = 'http://my.empeg/proc/empeg_screen.png?IGNORE=' + Date();


Just for kicks, I also updated the HTTP headers returned by Hijack to include more of the modern "not cacheable, you idiot!" keywords, but none of them really have any effect here.

Top
#297473 - 25/04/2007 15:28 Re: Dumb Javascript Question [Re: mlord]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Very cool!!! Thanks! I do not have the ability to test in the office, but I will let you know how things go.

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297474 - 15/05/2007 13:29 Re: Dumb Javascript Question [Re: pgrzelak]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Hehh.. related to this..

Being the kernel-focused fellow that I am, I've only just discovered that the "width=" attribute works for *expanding* image displays in a browser. Duh..

And the immediate practical application for this, is to use it like this (below) inside the empeg web interface:

<img src="/proc/empeg_screen.png" width="384"/>

Well golly! That sure does make the remote display viewing much easier on the eyes!

Here (attached) is a hacked up stylesheet to demonstrate it. To try this out, first ensure you have the latest Hijack kernel, and then just copy this file to /default.xsl on your empeg. Then surf to http://your.player.ip.address/?FID=101&EXT=.xml and watch the fun.

EDIT: replaced original attachment with a better one

Cheers


Attachments
299173-default.xsl (107 downloads)
Description:




Edited by mlord (15/05/2007 13:40)

Top
#297475 - 15/05/2007 14:09 Re: Dumb Javascript Question [Re: mlord]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Mmm.. perhaps one of you can help me with something now?

I want to do this:Code:


<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td rowspan="3"><img border="0" src="/fascia_left.gif" width="94" height="90"/></td>
<td rowspan="1"><img border="0" src="/fascia_top.gif" width="128" height="28"/></td>
<td rowspan="3"><img border="0" src="/fascia_right.gif" width="74" height="90"/></td>
</tr>
<tr>
<td bgcolor="grey"><img src="/proc/empeg_screen.png" width="128" height="32" name="screen_png"/></td>
</tr>
<tr>
<td rowspan="1"><img border="0" src="/fascia_bottom.gif" width="128" height="30"/></td>
</tr>
</tbody>
</table>



.. except it ends up looking like this (Firefox):



How to fix it? Or how to do it better inside the default.xsl stylesheet (previous post)?

Thanks


Attachments
299176-junk.jpg (143 downloads)
Description:




Edited by mlord (15/05/2007 14:10)

Top
#297476 - 15/05/2007 14:33 Re: Dumb Javascript Question [Re: mlord]
pgrzelak Offline
carpal tunnel


Registered: 15/08/2000
Posts: 4859
Loc: New Jersey, USA
Sorry. Busy day at the office...

Thanks! I will try out the style sheet in a little while. Meanwhile, I actually cheat with the fascia drawing code. Whitespace matters, so I did everything in a javascript function:

function drawFascia(url)
{
document.write("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
document.write("\t<tbody>");
document.write("\t<tr>");
document.write("\t\t<td rowspan=\"3\"><img border=\"0\" src=\"images/fascia_left.gif\" width=\"94\" height=\"90\"></td>");
document.write("\t\t<td><img border=\"0\" src=\"images/fascia_top.gif\" width=\"128\" height=\"28\"></td>");
document.write("\t\t<td rowspan=\"3\"><img border=\"0\" src=\"images/fascia_right.gif\" width=\"74\" height=\"90\"></td>");
document.write("\t</tr>");
document.write("\t<tr>");
document.write("\t\t<td id=\"tdDisplay\" background=\"images/display_smoke.png\"><img src=\"/proc/empeg_screen.png\" class=\"display\" width=\"128\" height=\"32\" name=\"namedisplay\" OnAbort=\"LoadError()\" OnError=\"LoadError()\"></td>");
document.write("\t</tr>");
document.write("\t<tr>");
document.write("\t\t<td><img border=\"0\" src=\"images/fascia_bottom.gif\" width=\"128\" height=\"30\"></td>");
document.write("\t</tr>");
document.write("\t</tbody>");
document.write("</table>");
document.write("<br>");
}

Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs

Top
#297477 - 15/05/2007 15:26 Re: Dumb Javascript Question [Re: pgrzelak]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
I don't seem to be able to get that js function to do anything in the stylesheet.

Mark / Paul / web-gurus ??

Here (attached) is a .zip archive with my hacked-up empeg web-lite interface.
Just unpack it, and move the contents to the root (/) directory of an empeg, and then surf to it (requires latest Hijack for the default.xsl).

There are two versions of the default.xsl file included, and you'll have to rename them in turn to use them. default.xsl-bad is what I thought *should* work, but the table element spacing for the fascias is off. It seems to have some extra padding, despite my best efforts to get rid of it.

The other version, default.xsl-good, is one I've hand-tweaked to look correct in my firefox-1.5, but this is heavily browser dependent. I'd like a better fix in the stylesheet for this.

Help?

And eventually, I want clickable image maps for the buttons.


Attachments
299181-my_empeg_weblite.zip (128 downloads)
Description:



Top
#297478 - 15/05/2007 16:44 Re: Dumb Javascript Question [Re: mlord]
cushman Offline
veteran


Registered: 21/01/2002
Posts: 1369
Loc: Erie, CO
Gah. This took longer than it should have. IE sucks.

This is a version that uses CSS and won't give you any gaps. Don't get me started about how if you want to float an image within a div in IE, the browser will insert whitespace around the image. The code below could be more terse for FireFox, but this is a good cross-browser solution:

Code:
<style>

.left, .right, .middle {
float: left;
}

.middleimg {
float: left;
clear: left;
}

</style>

<div class="left">
<img src="fascia_left.gif">
</div>
<div class="middle">
<div class="middleimg"><img src="fascia_top.gif"></div>
<div class="middleimg"><img src="empeg_screen.png"></div>
<div class="middleimg"><img src="fascia_bottom.gif"></div>
</div>
<div class="right">
<img src="fascia_right.gif">
</div>


Top
#297479 - 15/05/2007 18:19 Re: Dumb Javascript Question [Re: cushman]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Thanks Mark.

Better, but still not right in Firefox (swiftfox) 1.5.0.7 here:




Attachments
299197-1.gif (137 downloads)
Description:




Edited by mlord (15/05/2007 18:43)

Top
#297480 - 15/05/2007 18:39 Re: Dumb Javascript Question [Re: mlord]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Mmm... same result in Firefox-2.0.0.3 (Linux).
It is adding whitespace between the three middle images, as in the snapshot above.

My hacked up evolution of your stylesheet is attached.
???


Attachments
299199-default.xsl (104 downloads)
Description:




Edited by mlord (15/05/2007 18:41)

Top
#297481 - 15/05/2007 20:18 Re: Dumb Javascript Question [Re: mlord]
cushman Offline
veteran


Registered: 21/01/2002
Posts: 1369
Loc: Erie, CO
Add the following to the stylesheet:

.mfront_col img { display: block; }

For some reason Firefox is not treating the images as a block element in the XSL but does in a test example.

Top
#297482 - 15/05/2007 20:32 Re: Dumb Javascript Question [Re: cushman]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Quote:
Add the following to the stylesheet:

.mfront_col img { display: block; }

For some reason Firefox is not treating the images as a block element in the XSL but does in a test example.


Great! Yooo-Da-Mann!!

Thanks, Mark!

Top
#297483 - 15/05/2007 21:17 Re: Dumb Javascript Question [Re: mlord]
cushman Offline
veteran


Registered: 21/01/2002
Posts: 1369
Loc: Erie, CO
Someone really should come up with a render of the fascia, the one we are using bugs me because it's so pixelated and the screen part is tinted blue. I'm sure this picture that Charcoalgrey99 used was a render at some point, I can't believe that was a photo - anyone know where the original, ORIGINAL fascia art came from?
Top
#297484 - 15/05/2007 21:20 Re: Dumb Javascript Question [Re: cushman]
tfabris Administrator Offline
carpal tunnel


Registered: 20/12/1999
Posts: 27576
Loc: Seattle, WA
It definitely was a render. It was the original render from the CAD files of the fascia during development of the Mark2. Rob V posted those renders somewhere in very high resolution at that time. The version used in the Charcoalgray99 template are a reduced-down version of those original high-rez pictures. If we could find them again, you could edit them to get rid of the blue tint and to not have the pixellation.
Top
#297485 - 15/05/2007 22:18 Re: Dumb Javascript Question [Re: cushman]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Quote:
the one we are using bugs me because it's so pixelated and the screen part is tinted blue. I'm sure this picture that Charcoalgrey99 used was a render at some point, I can't believe that was a photo - anyone know where the original, ORIGINAL fascia art came from?


I'd be happy with just a better copy than the one I have here -- the bottom middle portion in particular was mismatched in size compared with the rest of the "set". I think I saved those from an early MSIE-only CG web interface.

Cheers

Top
#297486 - 15/05/2007 22:25 Re: Dumb Javascript Question [Re: tfabris]
wfaulk Administrator Offline
carpal tunnel


Registered: 25/12/2000
Posts: 13702
Loc: Raleigh, NC US
That post is here, and references http://www.empeg.com/preview, which doesn't exist in the Wayback machine. They may be lost to posterity.

Edit: I totally take it back. The correct post is here, and the Wayback machine has it, including a big 1450x457 pixel render. Success!


Edited by wfaulk (15/05/2007 22:30)

Bitt Faulk

Top
#297487 - 15/05/2007 22:49 Re: Dumb Javascript Question [Re: wfaulk]
cushman Offline
veteran


Registered: 21/01/2002
Posts: 1369
Loc: Erie, CO
Nice, Bitt! I've got it saved now, if I have some time tonight I might try to weakly stab away (Gimp along?) at making a sliced-up version of this.
Top
#297488 - 15/05/2007 22:56 Re: Dumb Javascript Question [Re: cushman]
mlord Offline
carpal tunnel


Registered: 29/08/2000
Posts: 9841
Loc: Canada
Quote:
Nice, Bitt! I've got it saved now, if I have some time tonight I might try to weakly stab away (Gimp along?) at making a sliced-up version of this.


A version sliced to fit a 2X/2X render of the front panel display would be very nice.
The front panel is 32H x 128W, so a render with an opening for 64x256 would be great!

Cheers

Top
Page 1 of 3 123>


Hop to: