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 を読む。MySQL と WEBrick の使用を前提として書かれているので、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 ではデフォルトの文字コードに関係なく問題なし。ほっと一安心。とりあえず使えるところまでたどり着いた。