No-hassle IE movie embedding

October 5th, 2007

Due to a lawsuit by Eolas against Microsoft, Internet Explorer (both 6 and 7) is not allowed to auto-load movies, flash, and other plugins. The effect is that users must click an empty area with a gray outline to load the content or start interacting with it. The standard approach to route around this usability fiasco is to dynamically load the <object> and <embed> tags with javascript. Here I present an easier, more readable, and unobtrusive technique for embedding content in IE6 and IE7.

Read full entry »

Creating images with javascript

August 24th, 2007

If you feel like being a little bit silly today, you might check out some code I wrote to generate BMP images right in the browser, using javascript. For maximum compatibility, I'm using the v3 header and uncompressed 24-bit color.

All mine does so far is generate a quasi-random bitmap. The same technique could be used to generate very small rounded-corner images and other progressive enhancements. Perhaps some other file formats might be interesting to play with as well. Excel spreadsheets, perhaps? I don't have much interest in continuing work on javascript-based file production, but I'd love to see other people take this idea for a spin.

Unobtrusive Permalinks

March 22nd, 2007

One of the problems with AJAX-style hash-based permalinks (as in use at WikiMapia) is that the browser's history becomes cluttered, and the user has to hit Back a large number of times to escape the page. By using location.replace, I've devised a way to keep the history pristine yet allow DOM-state permalinks.

Check out the demo. (Should be working now, thanks wioota.)

Ultimate Library Stub for Javascript

February 6th, 2007

Combining the power of hot buzzwords such as "closures", "private and privileged scoping", "anonymous functions", and "object namespacing", I present a framework for future Javascript libraries.

Read full entry »

Javascript: All grown up!

October 8th, 2006

Remember the days when Javascript was just a way to get things to move around on the page, and had to be coded completely separately for each browser? I'm amazed at how far the language has come. Now we've got closures, prototypal inheritance, and associative arrays, but without the usual slowdowns and complexity that usually result from extending a language. I just find it amazing that the language has truly improved over time, instead of becoming mired in bloat. Well done.