Tuesday, 30 May 2006

Web Colours

A while I go for my employer I wrote some php that would rotate the colour palette of a gif file in hsl colour space. It let me do things like "get the green version of that blue button"

- I’m not so hot with colours you see, I need things to constrain my choice of possibilities, which is why I appreciate the Accessability Colour Wheel, I can now choose colours on technical reasons instead of asthetic reasons.

I’m more comfortable with this.

Saturday, 20 May 2006

BBC Flash Update

[UPDATE: I have to say it was all my fault. Even though I had the non-free flash plugin install in ubuntu, it wasn’t activiated, I was using GPL Flash 4. Shame! The BBC were blameless - almost - IMHO they should have shown a popup dialog to warn the user and then gone on to see if their flash player could handle it; however thats a minor point compared to my foolish mistake]

To follow up on my previous post, and to prove that it is the javascript flash detection code at fault, I edited the html source of one of the offending pages from this:

if ((ssit_FlashPresent == 2) && (ssit_FlashVersion >= 5)) {
document.write (’<object id="hideandhelp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100%" height="85%"><param name="movie" value="intro.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFF66"><embed name="hideandhelp" src="intro.swf" quality="high" bgcolor="#FFFF66" width="100%" height="85%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveconnect="true"></embed></object>’);
}
else {
document.write(’<img src="/cbeebies/totstv/music_sounds/images/console.gif" alt="" width="500" height="300" border="0">’);
}


to this:

if (1 || (ssit_FlashPresent == 2) && (ssit_FlashVersion >= 5)) {
document.write (’<object id="hideandhelp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100%" height="85%"><param name="movie" value="intro.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFF66"><embed name="hideandhelp" src="intro.swf" quality="high" bgcolor="#FFFF66" width="100%" height="85%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveconnect="true"></embed></object>’);
}
else {
document.write(’<img src="/cbeebies/totstv/music_sounds/images/console.gif" alt="" width="500" height="300" border="0">’);
}


(In otherwords "just show me the flash anyway, foolish computer); and suddenly the flash all started working again.

If the BBC are buying this ssit flash detection code from a commercial company then I think they are wasting their money, if they would adhere to well known standards there wouldn’t be this problem in the first place.

This would be a better solution:

<object id="hideandhelp" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="100%" height="85%"><param name="movie" value="intro.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFF66"><embed name="hideandhelp" src="intro.swf" quality="high" bgcolor="#FFFF66" width="100%" height="85%" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" swLiveconnect="true"><img src="/cbeebies/totstv/music_sounds/images/console.gif" alt="" width="500" height="300" border="0"></embed></object>

If they really want to use the ssit stuff… they still shouldn’t. The answer would be to only explicitly block combinations known to fail, rather than only permit those known to succeed; but their source for these combinations known to fail would probably be as faulty as their current code is, and so is doomed to fail.

I’m just writing up a firefox plugin which will be available worldwide on the firefox plugins page to fix known faults with the BBC’s CBeebies website; unless of course the BBC manage to fix their website first….

I have posted my feelings and proofs to the BBC at http://www.bbc.co.uk/feedback/tech_fault_web.shtml

Update: nobody just writes a firefox plugin for the first time. I have more fun finding the fault than writing a work-around which I hope will soon be unnecessary.

BBC and FLASH on Linux

It looks like the BBC web team have changed the way they detect flash support in various browsers.

For example CBeebies pages like Tots-TV no longer work for me.

Where I was able to view flash in BBC websites, I now cannot, even though I can use flash in other websites like www.homestarrunner.com

I have multiple computers running the official flash 7 plugin from macromedia, with a firefox browser and Ubuntu Linux operating system.

Flash works fine for my family on many sites, and used to work on BBC until recently.

A common error with flash  support detection java script is for the person who wrote the script to think that they have covered all cases.

A common unfortunate consequence is for the flash detection javascript to actually be the obstacle instead of the helper.

Flash detection code should offer help or support in case things turn out to work but the  default fallback should always be to try the usual standard way of doing things without clever browser specific tricks.