I wrote the Professional Practice exam for APEGGA on Monday.  It’s not terribly difficult, but it certainly requires you to do the reading they’ve given you.  I’ll get my results in about six weeks.

Read full post

Looks like the <canvas> tag has landed on the Mozilla trunk.  More info available in bug 288714.

Brendan Eich sums it up pretty nicely in the bug comments:

We are turning canvas on – it’s already on by now.  Get over it.  Nothing in a relatively new spec is set in concrete, but that does not prevent useful work from being built on it.  This is how the Internet protocols, and then the web, were built.  Welcome back to incremental innovation.  The lull of six years of monopoly-induced stagnation is over.

The cool thing about <canvas> is that you can use it to draw any image you want client-side based on various graphics primitives.  It’s not structured markup like SVG, but rather a blank sheet that you draw on.  This should help with any application previously requiring server-side modules - they can now render images in fast client-side Javascript rather than slow server-side callbacks.

It’s supported by Apple’s Safari and will be by the next Firefox released from the trunk (1.1 or 2.0, depending on if they have branched or not).  No word yet on whether IE7 will support it, but I’m guessing the answer is no for a couple of years at least.

Read full post

The new <canvas> tag might be useful in building a smoother and more functional Google Maps implementation than Google currently has. 

Instead of pasting images together and scrolling them as necessary, you could blit them to the canvas at the appropriate location using drawImage().  Drawing routes on top of the map would be a simple transparent line drawing operation.

You could also write tile-based games that ran in a web browser without plugins.  Think nethack or Freeciv implementations.

Read full post

I managed to get the Picasa2 slideshow and timeline functionality working within Wine by adding support for DirectDraw surface locking and faking out some overlay surface capabilities.  It works pretty well, as you can see:

The timeline isn’t stretched to fill the entire window like it would be with a proper overlay stretch implementation.  I think they render to a 640x480 texture and scale it fullscreen to save processing power in their default mode.  The slideshow seems to be fullscreen when the overlay control bar is showing, as you can see in the first screenshot, however.

Read full post