Chromium OS
なんかいつの間にかソースコードが公開されてますね。WebAppベースってことは NW につながってなければほとんど何も出来なさそうだ(^^;
とりあえず tarball でダウンロードしたけど、専用ツール?を入れると GIT リポジトリからも取れるみたいですね。アーキテクチャ図を見ると Linux + X の環境っぽいので、WindowManager とか持ってきたりすればある程度似たものが作れるのかなぁ。まあカスタムファームウェアとか使ってるらしいのでその辺はダメだろうけど…
とりあえず tarball の中身を見た感じ ubuntu ベースなのかな?ubuntu の kernel-2.6.30-10.12 が格納されてたし。
trac + ganttcalendarplugin
gentoo に乗ってる Trac に TracGanttCalendarPlugin を入れてみたんだが、ガントチャートは表示されてもカレンダーが表示されないという状態でした。
ログを見てみるとクエリがこんな感じ。
2009-11-08 00:46:22,535 Trac[ticketcalendar] DEBUG: SELECT id, type, summary, owner, description, status, a.value, c.value from ticket t JOIN ticket_custom a ON a.ticket = t.id AND a.name = 'due_assign' JOIN ticket_custom c ON c.ticket = t.id AND c.name = 'due_close' WHERE ((a.value >= '2009年11月01日' AND a.value <= '2009年12月05日' ) OR (c.value >= '2009年11月01日' AND c.value <= '2009年12月05日'))
で、実際のデータベースのテーブルの中身が以下
sqlite> select * from ticket_custom; 1|due_assign|2009-10-23 1|due_close|2009-12-01 1|complete|
日付の比較はただの文字列比較(「'2009-10-23' >= '2009年11月01日'」みたいな感じ)になっているよう。これは検索引っかからないよなーということで、チケットの日付を日本語表記にしてみても変化なし。
いろいろ調べてみたところ、どうもロケール依存の日本語日付文字列を python が読み込めないのが問題っぽい。
↓テストプログラム(for python 2.6)
#!/usr/bin/env python # -*- coding: utf-8; -*- import locale, datetime, time locale.setlocale(locale.LC_TIME, 'ja_JP.utf8') print "locale: %s" % str( locale.getlocale(locale.LC_TIME) ) today = datetime.date.today() todayLocaleStr = today.strftime('%x') print "strftime: %s" % todayLocaleStr print "type: %s" % type(todayLocaleStr) print time.strptime(todayLocaleStr, '%x')
gentoo 上の実行結果は以下。
% python testdatetime.py locale: ('ja_JP', 'UTF8') strftime: 2009年11月08日 type: <type 'str'> Traceback (most recent call last): File "testdatetime.py", line 14, in <module> print time.strptime(todayLocaleStr, '%x') File "/usr/lib64/python2.6/_strptime.py", line 454, in _strptime_time return _strptime(data_string, format)[0] File "/usr/lib64/python2.6/_strptime.py", line 325, in _strptime (data_string, format)) ValueError: time data '2009\xe5\xb9\xb411\xe6\x9c\x8808\xe6\x97\xa5' does not match format '%x'
というわけで DB から日付文字列を取ってきたときに変換失敗して、そのレコードを読み飛ばしてしまっている模様。
うーん、日付書式はいろいろあるのでサポート大変なんだろうけど、これは何とかしてほしいなぁ。
ロケールの設定をいじればよさそうだけど、Trac のためだけに設定を変更するのもなんなので、とりあえずは日付書式を ISO8601 に統一した上で、パッチ作って使う感じかな。
はやいな
ROMA もう公開されてるのね。早いなー。