April 26, 2006

get it while it's hot: BoardFusion UI Preview

it's rare that i get the chance to build an i18n application from the ground up, we're usually involved after the fact. the BoardFusion (BF) project is a different critter altogether. i18n has been a major goal for this project from the outset. we're going to use icu4j as the main i18n library as we currently plan on supporting non-gregorian calendars, locale-based collation, user timezones and a lot of other i18n goodies you'd expect from modern i18n software.

right now we're at the user interface (UI) stage which beyond the app's "look and feel", will actually control how the application functions. so if you'd care to lend us an eyeball or two the BF project team would really appreciate your comments on the UI's

for more information on the project see the "BoardFusion News Page" and the Project Wiki.


April 13, 2006

happy new year

today (the 13th) marks the start of the traditional thai new year, Songkran. the new year was originally an astrologically calculated date (curiously the traditional thai calendar was lunisolar but the new year was based on solar calculations) but is now fixed on april 13th (i think some time during WWII). it marked the actual start of the new year in thailand up until 1880 AD. it became another national holiday in 1940 AD, when the new year in thailand was set as january 1st.

so it's time to leave your watch & wallet at home & wrap up your money & mobile phone in zip-locked baggies. here comes the water :-)

btw you too can help celebrate this holiday, grab a water pistol or bucket of water & dowse everybody in sight ;-)

April 05, 2006

proposed timezone changes for icu4j

in response to some RFEs, IBM's Yoshito Umaoka has proposed some interesting changes to ICU4J's timezone (tz) classes including methods to list tz rules as well as handle iCalendar's VTIMEZONE. to summarize from his from his email:
  • com.ibm.icu.util.ZoneRule: an abstract class representing a tz transition rule. this class represents basic properties of zone rule such as raw UTC offset and DST offset and abstract methods to access onset information.
  • com.ibm.icu.util.TimeListZoneRule: a concrete class extending ZoneRule. this class represents zone transition point(s) defined by UTC millis.
  • com.ibm.icu.util.RecurrentZoneRule: a concrete class extending ZoneRule. this class represents recurrent zone transitions defined by a rule, such as first Sunday in April. the way to define recurrent rule is pretty similar to SimpleTimeZone.
  • com.ibm.icu.util.RuleBasedTimeZone: a class extending TimeZone. this class aggregates one or more ZoneRule instances. using this class and ZoneRule instances, you can create a custom TimeZone which supports any historical zone transitions.
  • com.ibm.icu.util.VTimeZone: a class extending TimeZone, wraps either RuleBasedTimeZone or OlsonTimeZone (default TimeZone implementation used by ICU4J). this class would have two constructor methods for creating a new VTimeZone instance from 1) TZID such as "America/New_York" and 2) RFC2445 VTIMEZONE component. this class also provides some method to write out underlying zone rules into VTIMEZONE format.
in addtion to the new classes mentioned above, he also proposes some modifications to existing classes:
  • com.ibm.icu.util.TimeZone: an additional method - "List getZoneRules()", which returns a list of ZoneRule instances for the TimeZone. the implementation in TimeZone class just throws UnsupportedOperationException.
  • com.ibm.icu.util.SimpleTimeZone / com.ibm.icu.impl.OlsonTimeZone: overrides "List getZoneRules()" to return actual ZoneRule instances for these TimeZone implementation.
the javadocs for the proposed changes have been (temporarily) put up here. if you want to participate in the discussion regarding these changes hop on over to the ICU sourceforge site and subscribe to the mailing list.

jitter bug references: 4577, 5012

to me these seem like some decent improvements and i know several folks in the ColdFusion community are interested in timezones, especially their rules.