Saturday, May 10, 2008

Equinox & Solstice Support at All Levels

This version of the clock provides support for displaying solstices and equinoxes at all levels. Where the previous version would only place solstice and equinox indicators in the year band, this one places them in every band that is relevant, such that by the time the calculated minute of one of these events arrives, there are indicators of its time shown in every band.

Implementing that support cleanly required a re-write of the Javascript that drives the clock, during which I ran headlong into a number of my misconceptions about the language. Consequently, I've learned a lot, but I've thus far entirely failed to grasp the "zen" of this language, which is frustrating. At this point, I still don't understand why anyone would design a language like Javascript.

Ideally, you'll see an active analog clock here, rendered using SVG, and animated using Javascript. It works in Safari, anyway.

One minor improvement in this version of the clock is a change to the definitions of the time indicator-bar symbols. (They are defined at the same size at which they appear in the clock, which means that the use elements no longer scale the bar symbols.) This change results in no visible difference, except that Safari no longer leaves behind fragments of the second hand as it moves near the 0, 90, 180 and 270 degree angles. The bug is still in Safari's SVG renderer, but, fortunately, the new bar definitions don't exercise it.

No comments:

Post a Comment