web service
概要
百式さんの http://www.nouvelleblog.com/archives/2004/10/post_10.html にならい、時間を何に使ったかを逐一記録し、使途不明時間を減らすためのユーザーインターフェースの作例です。1〜9のボタンを何に使うかは自分で適当に決めて下さい。時間使途記録をiCal形式でダウンロードできるようになりましたので、iCal(または同等のカレンダーソフトウェア)でビジュアルに時間使途を見ることができます。
- http://www2.chem.nagoya-u.ac.jp/theochem/matto/ta+ical.cgi 試作ユーザーインターフェースはこちら。(実際に使用できます。サーバ負荷が高くなってきたので移転しました。)
Screenshot
使い方
とりあえず上のURLにアクセスして下さい。何か作業をして、ひと息手を休める瞬間に、それまで作業していた内容が属する分類のボタンを押すと、時間使途が記録されます。適切な選択肢がない場合は、入力欄の文字列を編集してからボタンを押して下さい。よく使う項目5つがテキスト入力欄の右側に表示されますので、使いこめば、ほとんどテキストを入力することはなくなると思います。
ぼーっとしたあとで作業を開始した場合は、作業開始時刻を設定してからボタンを押して下さい。
下の円グラフには、過去24時間分の時間使途が表示されます。黒い部分が使途不明時間に相当します。
iCalendar形式で過去の時間使途をダウンロードすることができます。iCalなどのカレンダーアプリケーションで、自分がいつ何をしていたかを逐一思いおこして下さい。いちいちダウンロードするのではなく、自動的にfeedできるようにしてみました。過去一週間の時間使途をiCalに随時表示できます!
API
まだAPIというほどのものはありませんが、cgiのURLのうしろに、”?rdfical=1”と付けると、過去一週間の履歴をXMLフォーマットで入手できます。クッキーが使用できない環境では”id=セッションID”も付加して下さい。いずれ、時間があれば、試作UIからajaxで履歴を読みこむようにするつもりです(がいつになることやら)。
ダウンロードとインストール
作例ですので、詳細なインストール方法は解説しません。
インストールするには、PerlのCGI, CGI::Session, GDモジュールが必要です。
ical対応版をインストールするには、Data::ICalなどのモジュールも必要です。CPAN shellで適宜入手して下さい。
cookieでセッション管理していますので、cookieを置けるブラウザが必要です。セッションの寿命は7日程度に設定されています。(7日間アクセスがないと記録が消えます)複数のコンピューターから同じ記録を操作したい場合は、画面に表示されているSessionIDをコピーして使って下さい。
ここでは作例としてCGIで作りましたが、本来ならPalmあたりでofflineで動いてくれるとうれしいなあ。
その他
せっかくシゴタノさん( http://cyblog.jp/modules/weblog/details.php?blog_id=241 )で紹介していただいたのに、サーバ負荷が(別件で)重くなっていたので、うまく動かなかったかもしれません。すいません。現在は別サーバで稼動しています。
私自身は、先週からGTDとこれを組みあわせて、自分がやること、やったことを把握しようとしています。端末の前に座っている間は非常に詳細にログがとれるのですが、移動中の時間の使い方は記録できません。腕時計ぐらいのデバイスで、これが動いてくれるといいんですけど。
カテゴリーが10個なのは、携帯電話でテンキーで操作しやすいように、と思ったからですが、実際にはcookieが必要なので携帯電話では使えないでしょうね・・・。
References
- http://developer.apple.com/internet/appleapplications/icalendarfiles.html iCalendar format
- http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=Session CGI::Session
- http://www.asahi-net.or.jp/~CI5M-NMR/iCal/ref.html icalのMIME type
- http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/download.html CGIでダウンロードするファイルの名前を指定する方法
- http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod CGI::header()の使い方
- http://cpan.uwinnipeg.ca/htdocs/Data-ICal/ CPAN
- http://perldoc.jp/docs/modules/CGI-Session-3.11/Tutorial.pod CGI::Sessionのもう少し詳しい解説 - matto
- サーバ側がcaldavに対応できれば、iCalとの同期がさらに便利にできる。 - matto
- http://homepage3.nifty.com/hippo2000/perltips/xml/generator.htm XML::Generator. RDFicalの生成に使用。 - matto
- http://www.kanzaki.com/docs/sw/rdf-calendar.html RDF calendarの解説。 - matto
- http://www.annocpan.org/~DROLSKY/DateTime-0.30/lib/DateTime.pm DateTime.pmの使い方。 - matto
- XML::Simpleはなかなか思った形で出力できないので、XML::Generatorを使うことにした。 - matto
ToDo
- Dashboardへの対応。連続する同じEventをマージする。一度iCal形式でダウンロードしたeventは再度ダウンロードしないようにする。
- ipod touchへの対応
- 英語版
ChangeLog
- v0.5
- 2007-10-12 携帯からだとcacheが効いて更新できないみたいなので、cacheしないようにmetaタグを追加。ひとつのセッションを職場と自宅でシェアしやすいように、10分ごとにリロードするようにmetaタグを追加。携帯のボタンでダイレクトアクセスできるようにaccesskeyを追加。
- v0.4
- (2007-10-11)携帯での利用を考え、cookieを廃止した。utf8をSessionに保存すると誤動作する問題を解消。URLの変更。GDが使えないので、グラフをテキストで表現するように変更。
- v0.3
- ([2006](/2006)-6-8)個別にiCal用の*.icsファイルをダウンロードするのではなく、随時iCal側でfeedできるように変更。だいぶ便利になった(そのかわり、遠い過去の時間使途記録は残らない)。
- v0.2
- 時間使途データベースをsession別に分けた。utf-8に移行。icalへの対応を検討。一日の使途リストを、icalendar形式でファイルに出力する。
- v0.1
- 初期版(Shift-Jis、データベースは共用) ## Linked from * [使途不明時間](/使途不明時間) ---- [Edit](https://github.com/vitroid/vitroid.github.io/edit/master/MD/使途不明時間.md)