Microsoft's Eolas ActiveX Patch For IE Sometimes Breaks JavaScript Workaround

It was a long time coming, but on Feb 28 2006, Microsoft released a patch (KB912945) for the Eolas patent dispute that “breaks” Active X in Internet Explorer, which includes Flash on Windows XP and Windows Server 2003.

This only affects IE.

Firefox, Mozilla, Opera and the rest are not affected.

[Update 28/7/2006] – The new Opera 9 IS affected by this.

eolas_opera.png

Opera Asking for Activation

Windows 2000 derivatives are not affected (yet) as a final decision on browser revisions for Windows 2000 is still pending. Luckily there is a simple JavaScript workaround for this patch. See my previous posting and workaround.

Because this first patch “broke” so many websites, Microsoft have also issued a “Compatibility Patch(KB917425) that negates the Eolas patch until some time in June. “This Compatibility Patch will function until an Internet Explorer update is released as part of the June update cycle, at which time the changes to the way Internet Explorer handles Active X controls will be permanent.”

This compatibility patch can prevent you from seeing the full effect of the Eolas patch. So, if you are a web developer and you want to know what the effect the Eolas Patch is going to have on the behavior of your site in IE, Make sure you don’t have the Compatibility Patch installed!

It seems that it is possible to install the Eolas Update via an Automatic Update (KB912812) in such a way that the ‘workaround’ that Microsoft and Macromedia suggests does not function. I have encountered a small but worrying (given the sample size) number of machines with this issue.

I was able to install and then un-install the compatibility patch and all problems (see “The Whole Story” below) were resolved, for no apparent reason. See “Conclusions” at the end of this document.

How To Tell If You Have The Eolas Patch Installed

If you are running Windows XP, Open the “Control Panel” and then click on “Add Or Remove Programs” and make sure ‘Show Updates’ is ticked.

If you have the Eolas Patch, One of the following will be installed.

KB912812.png

The KB912812 Security Update which contains the Eolas patch (KB912945)

KB912945.png

Just The KB912945 Eolas Patch

The Whole Story

Now I previously blogged about the Eolas Patch and provided a detailed description of the workaround provided by both Microsoft and Macromedia. I was able to test this workaround by directly downloading the patch from MSDN.

Here is the time-line for the Eolas related patches (As accurate as I have been able to determine).

Jan 9, 2006 – Microsoft releases non-security update for Internet Explorer 6 for Windows XP Service Pack 2 to MSDN subscribers

Feb 9, 2006 – Update became publicly available on MSDN

Feb 10, 2006Update for Internet Explorer for Windows XP Service Pack 2 (KB912945) Via KB912812

“After you install this update, you cannot interact with Active X controls from certain Web pages until these controls are enabled. To enable an Active X control, manually click the control. There are also techniques that Web developers can use to update their Web pages. For more information about these techniques, visit the following MSDN Web site”

Feb 28, 2006 – Patch distributed as a ย“recommended updateย” on Windows Update for Windows XP Service Pack 2

April 11, 2006 – Published in Cumulative Update for Internet Explorer for Windows XP Service Pack 2 (KB912812)

Also in : Cumulative Update for Internet Explorer 6 SP1 (KB912812)

Also contains “Update for Internet Explorer for Windows XP Service Pack 2″ (KB912945) which in the first description is…

“This update includes minor changes to how Internet Explorer handles some web pages that use Microsoft Active X controls. Certain webpages will require users to manually activate Active X controls by clicking on it or using the TAB key and ENTER key. This update contains all previously released security updates. After you install this item, you may have to restart your computer.”

But in another location…

“After you deploy update 912945 for Internet Explorer, the behavior of the Internet Explorer Active X update that is contained in security update 912812 is disabled. The security fixes that are contained in security update 912812 are still present and will still function. Only the Internet Explorer Active X update behavior is disabled.”

One of these is incorrect.

April 11, 2006 – “Compatibility Patch” – “Update for Internet Explorer for Windows XP Service Pack 2” ( KB917425)

“The IE Compatibility Patch reverts the IE Active X update behavior contained in the April Security update (KB912812). This patch should be used by customers who have experienced compatibility issues and who require more time to test/update websites and programs that are impacted by the IE Active X update. This patch is temporary, and will only apply to KB912812. This IE compatibility patch will not be available for future security updates. After you install this item, you may have to restart your computer. “

April 20, 2006 – Re-Release of “Compatibility Patch” “Update for Internet Explorer for Windows XP Service Pack 2” ( KB917425)

?? June 2006 – Compatibility Patch Expires

“This Compatibility Patch will function until an Internet Explorer update is released as part of the June update cycle, at which time the changes to the way Internet Explorer handles Active X controls will be permanent.”

So “officially”, this patch came through with “Cumulative Security Update for Internet Explorer (912812)” which was released on April 11th 2006.

But on machines with this patch I was still getting prompts for activation on sites with the workaround in place. This has been verified with sites that use custom JavaScript and the very good flashObject/swfObject JavaScript library.

eolas.png

I have also received feedback from clients with ‘dodgy’ install of windows with the Eolas patch that are still getting prompted for Active X “activation” despite the web-site having the workaround in place.

Removing KB912812 and KB912945, rebooting then re-installing KB912812 again seems to resolve the issue.

Also installing the compatibility patch and then uninstalling it seems to solve the problem

Conclusions

It is possible for the original Eolas patch to be installed in such a way that JavaScript workaround does not function. Installing the compatibility patch and then uninstalling it seems to solve the problem

If you are a web developer, beware – the “Compatibility Patch” may be masking the problems your site has with Flash and Active X when viewed in IE with Eolas patch..

Posted in JavaScript | 6 Comments

MetaWrap JavaScript Cluster/Grid

This is not an April Fools post – although when you get to the end of it you may wonder.

As a proof of concept of the MetaWrap Apache_mod interface I’m going to write something that distributes grid tasks to web browsers as JavaScript transcoded from the MetaWrap VM.

Whenever someone visits a particular web page, either by included .js script file or an IFRAME I’ll run some code that performs some small part of batch task that’s been registered on a MetaWrap server.

Maybe not really a practical test unless I get some force multiplier from JavaScript being the only real “Run Anywhere” language out there and get a really huge number of users.

This is really a test of the MetaWrap server and the ability to create and coordinate a distributed computing task and display the results.

Aiming for something that will run on IE, Mozilla and as many mobile phone browsers that I can find that can run JavaScript of some kind. I figure there are so many 200Mhz + phones out there that it may be worthwhile.

Plan is to build a database of jobs that will render an ultra high resolution Mandelbrot set.

Or maybe ray trace a scene.

Need some way to allow people to navigate the completed Mandelbrot set online – which is a task in itself.

[Update 7/8/2005]

Google maps style interface would go nicely!

Using Action XML format to encode jobs. At this rate though not going to be finished for another year.. ๐Ÿ˜ฆ

[update 13/11/2005]

Javascript Mandelbrot set generator

http://jepstone.net/blog/?p=128

JavaScript Ray Tracer

http://www.slimeland.com/raytrace/

 

Posted in Coolhunting, JavaScript, MetaWrap Server, Things To Do | Leave a comment

Grid Envy

I was in the middle of building something like this as a demo for my XML storage server, looks like several people beat me to it. Looks like they applied for a patent only to find that there is lots of prior-art.

“A little while back I had an idea about how it might be possible to build a massive grid computer harnessing the power of the transient Internet user population. In essence the idea was to use the almost universally deployed JavaScript runtime embedded in modern web-browsers to perform small processing tasks which are part of a larger distributed processing algorithm (I can just hear those bozo bits flipping).”

http://www.gridenvy.com/

Posted in Coolhunting, JavaScript, Meta-Narrative, MetaWrap Server | Leave a comment

MetaWrap TimeConverter, Build 6

This is no longer the latest version. Click Here To Find The Latest

Here (download) is the latest version (Build 6) of the MetaWrap time converter which replaces the previous version (Build 5)

Un-install instructions here.

This build fixes some reported bugs in the timezone data.

  1. Bug in map ‘Sunburn’ not handling 1st Equinox correctly.

 

Posted in TimeConverter | 3 Comments

MetaWrap TimeConverter, Build 5

This is no longer the latest version. Click Here To Find The Latest

Here (download) is the latest version (Build 5) of the MetaWrap time converter which replaces the previous version (Build 4)

Un-install instructions here.

This build fixes some reported bugs in the timezone data.

  1. Added Seattle, USA
  2. Added Cleveland, USA
  3. Fixed timezone database (This year the magic month is April, not March)
  4. Fixed restart when installed in root of filesystem.

 

Posted in TimeConverter | Leave a comment

I have a 4 Colour Pen, Fear Me Now

On the topic of how we do our thinking/wire-framing/documentation, in a wonderful thread in Leisa Reichelt’s blog….

Also here in a thread on UML vs Nothing and a post from Melissa Firth‘s shiny fresh new blog that mentions UML being used to outline the narrative of a novel and it seems that 37 Signals prefer Textas.

Personally I prefer a 4 colour Bic Pen. I have two of them and at least two notebooks in my bag at all times.

bic-4-color-pen.jpg

I don’t need a computer to program. I do a lot of it visually (in my head) and model algorithms with geometry/diagrams.

As I flick through my notebook and view the scribblings within, I am, for some reason, reminded of Aleister Crowley. 1 2 3

I provide the following images for you to judge for yourselves. (Click to view large version)

scribble1-small.jpg scribble2-small.jpg scribble3-small.jpg

Posted in Downtime, Rants, Web2.0 | 2 Comments

Why Transcendental Compression Is Impossible

By “Transcendental Compression”, I mean the concept of taking p or e or, root 2, any of the Transcendental Numbers or functions and using some part of the sequence of its digits as a dictionary for tokens in a compression algorithm.

For example, using p

eg.

3.141592653589793238462643383279502884197169399375105820974944592307816406286...

you could compress the sequence of numbers

793238462643383279502884197169399375105820974944592307816406

as

I = 13
N = 60

So if you start at the 13th digit of p, the next 60 characters contain the uncompressed data.

There is no way disprove that there is not an index I into the digits of p that encodes for every movie ever made.

While delirious with the flu I was IMing to a friend in London over MSN on a mobile phone while riding in a taxi on the way home, its a crazy world.

He had pointed out this posting and was working out an algorithm. There are other links like this.

I have a raging flu but by the time I got home I came up with two proofs that this is impossible, and its not because the amount of computing power required would be infinite. 

A theoretical infinite or quantum computer will not save this idea.

Because I have a raging flu these proofs are probably wrong, but they make sense to me in my current head-space.

If this is possible then please feel free to correct me and explain how so I can start building a super cluster of compression servers. If my proofs are Bogus, tell me how I can make them better.


Proof 1: Infinite Compression Is Bogus

A bit is just the number 0 or 1

Assume we have a function C(D) = d

Which can take any sequence of bits D, N bits long and reduce it to a sequence of bits d, n bits long.

Lets assume that N = 2 and n = 1

So you could in theory take any sequence of bits, and compress it, which would halve it,

then compress it again, which would halve it again

then compress it again, which would halve it again

An entire movie could be compressed to 1 bit.

This is of course impossible.

A bit contains only 2 possible values 0 or 1, and I have seen at least 3 movies ๐Ÿ™‚


Proof 2: Transcendental Compression Is Bogus

Take any sequence of numbers S length N and start looking for an index I in the digits of p that matches such that you can encode your sequence of digits as

I = Index into p,N = Length of sequence of numbers.

The digits of PI are infinite and random, so there is no upper limit on the values of I.

So the possible value of I is somewhere between 0 and infinity.

Using probability, the average value of I will be  

I = Infinity/Finite.

Which is Infinity.

So on average, the length of your index is infinite.

As you are compressing your data to the number pair “I,N“, it is more than likely that your probably infinite I will be longer than the S you are trying to compress.

This does not sound like a viable compression routine to me.

Here is another more general proof.

Posted in Coolhunting, Faster Than Light, Rants | 7 Comments

Real DJs Code Live

Interesting and cool wired article.

How times have changed.

I was doing this in the 80’s and 90’s using Amigas and later with PCs. Creating VJ demos and tweaking mod-tracker code between sets while in state of ‘inspiration’ ๐Ÿ™‚

Most people thought we were really really uncool.

Got some hilarious reviews ๐Ÿ™‚

Posted in Music & Art, Nostalgia for Misspent Youth | Leave a comment

"I've Seen The Future, And It's Not Fax-Rock"

In 1994 – before the internet broke as a story, before the media had made the link between the internet and music, Clan Analogue performed at the Big Day Out in a small room next to the “Boiler Room”. Nanotech did live visuals at this event.  With a home grown supercomputer written mostly at dance parties… what would you do?

 

DrumMedia.jpg

The First Part of The Review By Simon Killalea – No Mention Of Us

But on the second half by Brett Oaten – We hit pay dirt.

 FaxRock1.jpg

 FaxRock2.jpg

(The Bad Billy Idol Album) But the punters got it. The next year Clan ran an internet cafรฉ and won control of the entire “Boiler Room”. ๐Ÿ™‚

[Update]

Some images from the 1995 event

l_dome.gif

“The Family” Setting Up

iroom_2.gif

Tom Ellard and Jason Gee

iroom_3.gif

Brendan and Kiralee

lisa_w.gif

Femme De Jour

l_dome3.gif

Doof Doof Doof Doof

l_dome4.gif

Happy Punters

l_dome5.gif

Finished packing up at 3am. As I had hired the computers and cushions, I had to wait for the truck in the morning and guard them with my life.

While I was sleeping someone took my camera and took a picture of me. ๐Ÿ™‚

Posted in Me Myself and I, Nostalgia for Misspent Youth | Leave a comment

This Month In JavaScript – 2006.6

“I decided to make a list of the top libraries that I have come across or that I personally use. Libraries can be a web developers best friend. They are great resources to learn from and can save hours and hours of time. These libraries include JavaScript, Ajax, Colors, PHP, and CSS. These should be in any web developers bookmarks, so go ahead and look through these libraries and bookmark your favorite ones. The list is in no particular order.”

http://www.cameronolthuis.com/2006/06/top-10-web-developer-libraries/


“The major web browsers are getting facelifts as they increasingly become the focal point for handling business transactions and running programs over the internet rather than simply displaying websites.”

http://www.wired.com/news/technology/0,71204-0.html?tw=rss.index


Cross browser “window.onload” solution – now supports Safari.

http://dean.edwards.name/weblog/2006/06/again/


“iBox is a lightweight script that lets you overlay images, divs, and HTML on your current page. It is damn easy to install and setup.”

http://www.ibegin.com/blog/p_ibox.html


http://www.subdevide.com/portfolio/drop-shadows-with-css/


http://www.designdetector.com/link/to/ten-common-css-mistakes/


Sudden publicity for using flash as an XML data-source connector to replace XMLHttpRequest. Should I mention that the MetaWrap project introduced this into its Xml action library over a month ago? ๐Ÿ™‚ (testcase)

http://www.fjax.net/

http://incito.lt/index.php#/gateways/go.php?to=products/swfjax


Google AJAX API for search

http://code.google.com/apis/ajaxsearch/


“JavaScript Libraries: Friend or Foe?”

http://simon.incutio.com/archive/2006/06/26/libraries


Safari JavaScript Debugger

http://webkit.opendarwin.org/blog/?p=61


“AJAX is a great tool for creating rich internet applications, however, when improperly implemented it can cause huge accessibility issues. The good news is that most of these issues can be fixed so your websites are viewable by a much wider audience. “

http://www.maxkiesler.com/index.php/weblog/comments/how_to_make_your_ajax_applications_accessible/


An oldie but a goodie – CSS text size zooming with working example.

http://www.deltatangobravo.com/archives/2004/september/zoomzoomzoom


 

   

Posted in JavaScript | Leave a comment