Tracks で GTD

Tracks という GTD のための web アプリケーション を見つけた。作者は Ruby on Rails を学ぶ、GTD を実践する、というふたつの目的をもって開発したとのこと。

前準備

前準備として、DarwinPorts で sqlite3 3.2.2、Ruby Gems で RedCloth 3.0.3 と SQLite3/Ruby 1.1.0 をインストール。Ruby on Railsひとつ前の記事でインストールした。

$ sudo port install sqlite3
$ sudo gem install redcloth (7/17 追記: RedCloth は Tracks 1.03 に付属)
$ sudo gem install sqlite3-ruby

Tracks では MySQL, PostgreSQL も使えるが、ここで SQLite3 にしたのは、Mac OS X Tiger にデフォルトで入っている(らしい)から。まだ Panther だけど、揃えておけばいいことあるかもという程度。あと Lite なので、手軽そうなイメージだし。他の SQL はよく知らないけど、SQLite ならデータベースが 1 ファイル (少しあとで出てくる tracks.db) なので、これを Tracks を入れた複数のマシンで共有すれば、1 台の Mac/PC にしばられずに済むのではという目論見もある。

Tracks のインストール

http://rousette.org.uk/projects/downloads/25/tracks-103-final で Tracks 1.03 を取ってきて、$HOME/Sites に展開。tracks-1.03 というフォルダができるので、それを tracks に変える。ここからは tracks 内の相対パスで記す。

まず ./doc/app/index.html を読む。MySQLWEBrick の使用を前提として書かれているので、SQLite を入れてさっそく困った。とりあえず、わかるところから進める。./config/*.yml.tmpl をコピーして ./config/*.yml を作る。database.yml では、

production:
  adapter: sqlite3
  dbfile: /Users/foo/Sites/tracks/db/tracks.db
  database: tracks
  host: localhost
  username: root
  password: 

とし、settings.yml では date の行を修正して、日付のフォーマットを変えておく。

これで SQLite を使う準備はできたが、肝心のデータベースファイル ./db/tracks.db がまだ。

$ cd ~/Sites/tracks/db
$ sqlite tracks.db
sqlite> .read tracks_1.0.3_sqlite.sql
sqlite> .read tracks_1.0.3_content.sql
sqlite> .quit

ふたつ目の .read コマンドは context や action の例を追加するもので、自分で一からやるなら実行しなくてよい。僕は面倒くさがりなので、この例をベースに直して使う。.quit でデータベースファイル作成完了。

あともう少し。WEBrick サーバを動かす前に、./log.tmpl をコピーして ./log フォルダを作る。./public/dispatch.* 先頭行の Ruby のパスを確認。ここでは WEBrick サーバを使うので、DarwinPorts で入れた Ruby 1.8.2 を指していないと動かない。Tiger なら気にしなくていいはず。

Tracks が動いた

これで準備完了。以下を実行すれば、WEBrick サーバ上で Tracks が動き始める。

$ cd ~/Sites/tracks
$ ruby script/server --environment=production --binding=127.0.0.1

ここで --binding オプションをつけたのは、./CHANGELOG によればデフォルトではリモートからもアクセスできるから。自分の環境ではファイアウォールが間にあって、実際にはアクセスできないようにしてあるけど、一応根本から絶っておく。WEBrick のヘルプは、ruby script/server --help で見られる。ポートも --port オプションで変更できる。ログは先程作った ./logs/production.log に出力される。

で、ユーザ登録を行う。ブラウザで localhost:3000/signup にアクセス。適当なユーザ名とパスワードを入れる。最後の Secret word はどこで使うのかわからないけど、パスワードと別のものを入力しておく。Signup ボタンを押して、登録完了。直後にログイン画面に移るので、今作ったユーザでログインする。うまくいけば、http://rousette.org.uk/projects/screenshots/10/screenshots にあるようなページが見られる。

試しに日本語で context を登録。Safari で確認したら文字化けしていたが、UTF-8 でリロードしたら大丈夫だった。Firefox ではデフォルトの文字コードに関係なく問題なし。ほっと一安心。とりあえず使えるところまでたどり着いた。