{{publish any}} {{category software}} {{category web service}} {{category lifehack}} !!概要 百式さんの 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 試作ユーザーインターフェースはこちら。(実際に使用できます。サーバ負荷が高くなってきたので移転しました。) *{{ref ta+ical.cgi}} !!Screenshot {{ref_image ta.png}} !!使い方 とりあえず上のURLにアクセスして下さい。何か作業をして、ひと息手を休める瞬間に、それまで作業していた内容が属する分類のボタンを押すと、時間使途が記録されます。適切な選択肢がない場合は、入力欄の文字列を編集してからボタンを押して下さい。よく使う項目5つがテキスト入力欄の右側に表示されますので、使いこめば、ほとんどテキストを入力することはなくなると思います。 ぼーっとしたあとで作業を開始した場合は、作業開始時刻を設定してからボタンを押して下さい。 下の円グラフには、過去24時間分の時間使途が表示されます。黒い部分が使途不明時間に相当します。 ==iCalendar形式で過去の時間使途をダウンロードすることができます。iCalなどのカレンダーアプリケーションで、自分がいつ何をしていたかを逐一思いおこして下さい。==いちいちダウンロードするのではなく、自動的にfeedできるようにしてみました。過去一週間の時間使途をiCalに随時表示できます! {{ref_image ical.png}} !!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 {{datetime 1147251188,bbstime}} *サーバ側がcaldavに対応できれば、iCalとの同期がさらに便利にできる。 - matto {{datetime 1147610546,bbstime}} *http://homepage3.nifty.com/hippo2000/perltips/xml/generator.htm XML::Generator. RDFicalの生成に使用。 - matto {{datetime 1147625130,bbstime}} *http://www.kanzaki.com/docs/sw/rdf-calendar.html RDF calendarの解説。 - matto {{datetime 1147625152,bbstime}} *http://www.annocpan.org/~DROLSKY/DateTime-0.30/lib/DateTime.pm DateTime.pmの使い方。 - matto {{datetime 1147625178,bbstime}} *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-6-8)個別にiCal用の*.icsファイルをダウンロードするのではなく、随時iCal側でfeedできるように変更。だいぶ便利になった(そのかわり、遠い過去の時間使途記録は残らない)。 :v0.2:時間使途データベースをsession別に分けた。utf-8に移行。icalへの対応を検討。一日の使途リストを、icalendar形式でファイルに出力する。 :v0.1:初期版(Shift-Jis、データベースは共用)