Chromium OS

なんかいつの間にかソースコードが公開されてますね。WebAppベースってことは NW につながってなければほとんど何も出来なさそうだ(^^;
とりあえず tarball でダウンロードしたけど、専用ツール?を入れると GIT リポジトリからも取れるみたいですね。アーキテクチャ図を見ると Linux + X の環境っぽいので、WindowManager とか持ってきたりすればある程度似たものが作れるのかなぁ。まあカスタムファームウェアとか使ってるらしいのでその辺はダメだろうけど…
とりあえず tarball の中身を見た感じ ubuntu ベースなのかな?ubuntu の kernel-2.6.30-10.12 が格納されてたし。

http://www.chromium.org/chromium-os

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 に統一した上で、パッチ作って使う感じかな。

紅茶の日

本日は紅茶の日ということで久々に紅茶を買ってきた。
キャロルという知らない種類のフレーバーティーなんだけど、試飲したら思いのほか良かったのでさくっとゲット。帰ってきてから調べてみると、どうもお店のオリジナルなのかな?クリスマス期間限定とのこと。

紅茶は片づけがめんどくさい(ティーポット洗う手間があるだけなんだけど…)ので最近はあんまり飲んでなかったんだけど、これを機会に飲むとしよう。

しかし、コーヒーの日の次の月が紅茶の日とはなんか因縁でもあるんだろうか…?まあ由来をちょっとぐぐった感じそんなのなさそうだけど(^^;

lv のつづき2

どうやら Windows のコンソールの場合、CreateConsoleScreenBuffer とかでバッファ作って切り替えておけばページャーっぽい動きになるようなのでそんな感じに修正した。
lv の場合 1 文字ずつこの ScreenBuffer に書くようになるので、2 つつくってフリップするような感じにしたほうがいいのかな?ダブルバッファっぽい感じにすれば「j」とかでスクロールしてるとちらちらするのが押さえられるんじゃなかろうか?
lv では ConsoleFlush 関数とかがあるのでこいつをその代わりにしてあげれば問題ないような気がする。まあこの辺はそのうち…

lv のつづき

とりあえずパイプから読み込む方のロジックを見直してみると、処理が抜けていただけっぽい。適当に MSDOS の方のコードを有効にしてみていたんだが、それではだめだったっぽい。
とりあえず読めるようになったので、コンソールの使い方をもうちょっとましに直したらよさそうだな。