おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2009年12月28日(Mon) 山頂見えるけどちょっとVog [長年日記]

それぞれのイベントに独立にタイムゾーンを設定できるカレンダーはRuby 1.9.2で可能になる?

Palm OSでは簡単に実現できていたように見える、それぞれのイベントに独立にタイムゾーンを設定する機能がなぜモダンなカレンダーアプリケーションに無いのか、理由かもしれないことを思いついた。

akrさんによる、Ruby札幌02での講演Rubyにおける2038年問題の解決」(PDF) で思い出させていただいたのが、POSIXのzoneinfoのAPIが基本的に単一のタイムゾーンしか扱えないようにできている、ということ。システムコールの時刻に関するAPIはローカル時刻を扱う時にシステム全体のタイムゾーンか、あるいはTZ環境変数を見るんだよね。僕の作ったアプリケーションのいくつかは、マルチスレッドになれないなあ、とひやひやしながら、TZ環境変数を書き換えながらローカル時刻を扱っている。カレンダーアプリケーションでイベントを表示したり編集したりするたびにプロセス全体にロックをかけてTZ環境変数を操作してたら、実用にならないくらい遅くなりそうだ。POSIXなんて知らなかったPalm OSにはこういう制限が無かったのかもしれない。

これに対して、Ruby 1.9.2ではTimeオブジェクごとに任意の時差(ってタイムゾーンだよね)を指定可能になるのだそうだ。みなさん、これは使いやすいカレンダーアプリを作るチャンスですよ♪特にGoogle calendarさん〜。僕も書きたいけどきっと余裕が無い orz。

ってSunbirdのローカルなカレンダーは既に複数タイムゾーンに対応してるんだよね。どうやって実装されてるのか見てみたい。いつ。

自転車のサドルが来た。Sette Lynx。ケツに合うといいな。

本日のツッコミ(全2件) [ツッコミを入れる]
> akr (2009年12月28日(Mon) 15:52)

タイムゾーンは時差の時系列変化ですから。

> zunda (2009年12月28日(Mon) 19:54)

なるほど!


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>