2010年06月20日
再開しようかな
またちょっとGTDが一部で盛り上がってきているようなので様子を見て再開するかもしれません。
2006年12月04日
GTDツールTracksをローカルWinXP環境にインストールする手順
以前、GTD初心者向けのチュートリアル的な要素を持ったツールがもっと出てきてほしいと書いたことがありますが、最近はいろいろと新しいものが出ているようです。いまのところGTDのフローを強く意識している、以下のツールが気になっています。
ThinkingRock
http://www.thinkingrock.com.au/
JavaVM上で動くスタンドアロンアプリ
gtd-php
http://www.gtd-php.com/
PHPで書かれたWebアプリ
Tracks
http://www.rousette.org.uk/projects/
Ruby on RailsベースのWebアプリ
このうちThinkingRockは、Javaの実行環境が入っていればインストーラ実行一発ですぐ使えるようになりました。
また、gtd-phpは公式サイトにデモ用サーバがあるので操作感を試すことは簡単にできます。
問題はTracksで、デモ用サーバも見あたらず自分の環境に入れてみるしかなさそうです。そこでRuby on Rails自体に興味もあったのでインストールすることにしてみました。作業手順はちょっと複雑で、ローカルのWindowsXPに入れる手順を日本語で解説しているようなブログも見つけられなかったので、メモとして残しておきます。
参考
Installing Tracks 1.03 on Windows XP - an updated guide
http://www.jjleonard.co.uk/?p=102
手順1 Instant Railsのインストール
Instant Railsは、以下のアプリを一発で入れる簡単インストーラとのこと。
・Ruby言語とパッケージマネージャ(RubyGems)
・Webサーバ(Apache/Mongrel)
・データベース(MySQL)
・Ruby on Rails本体
http://instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails
トップページの[Download]から InstantRails-1.4-win.zip をダウンロード。今回はC:\usr\InstantRailsに展開(フォルダ名にスペースがあるとダメらしい)。
InstantRails.exeを実行。「環境変数を変更しちゃうよ」みたいなダイアログでOKを選択。MySQLがStartedになっていなければStartする。Apacheはどうでもいい。
手順2 Tracksのインストール
公式サイトのDownloadsから「Tracks 1.043」のファイルアイコンをクリックしてダウンロード。
http://www.rousette.org.uk/projects/downloads/index
C:\usr\InstantRails\rails_apps\tracks-1.043 に展開。
手順3 Tracks設定ファイルの作成
C:\usr\InstantRails\rails_apps\tracks-1.043\configのフォルダを開く。
database.yml.tmplをコピーしてdatabase.ymlを作成。
environment.rb.tmplをコピーしてenvironment.rbを作成。ファイルを開いて"change-me"を適当な文字列に変更。
手順4 Tracks用データベースの作成
コマンドプロンプトから以下のコマンドを実行。
cd C:\usr\InstantRails\mysql\bin
mysql -uroot -p
(パスワードを聞かれるが設定していなければそのままEnter)
mysql> create database tracks;
mysql> create database tracks_development;
mysql> create database tracks_test;
mysql> grant all on tracks.* to rails@localhost;
mysql> grant all on tracks_development.* to rails@localhost;
mysql> grant all on tracks_test.* to rails@localhost;
mysql> exit
手順5 Tracks用テーブルの作成
コマンドプロンプトから以下のコマンドを実行。
cd C:\usr\InstantRails\rails_apps\tracks-1.043
C:\usr\InstantRails\ruby\bin\rake migrate
手順6 Tracks起動
Instant Railsの「I」ボタンクリック
Rails Applications → Manage Rails Applications..
tracks-1.043にチェックを入れる
「Start with Mongrel」を押す
手順7 ユーザ登録
http://localhost:3000/signup にアクセスしてユーザ名とパスワードを設定
手順8 ログイン
以降は、http://localhost:3000/ にアクセスすればログイン画面が出る
これでとりあえず操作できるようにはなりました。本格的に使うにはたぶんセキュリティ関係の設定をちゃんとしないとまずい気がします。
ThinkingRock
http://www.thinkingrock.com.au/
JavaVM上で動くスタンドアロンアプリ
gtd-php
http://www.gtd-php.com/
PHPで書かれたWebアプリ
Tracks
http://www.rousette.org.uk/projects/
Ruby on RailsベースのWebアプリ
このうちThinkingRockは、Javaの実行環境が入っていればインストーラ実行一発ですぐ使えるようになりました。
また、gtd-phpは公式サイトにデモ用サーバがあるので操作感を試すことは簡単にできます。
問題はTracksで、デモ用サーバも見あたらず自分の環境に入れてみるしかなさそうです。そこでRuby on Rails自体に興味もあったのでインストールすることにしてみました。作業手順はちょっと複雑で、ローカルのWindowsXPに入れる手順を日本語で解説しているようなブログも見つけられなかったので、メモとして残しておきます。
参考
Installing Tracks 1.03 on Windows XP - an updated guide
http://www.jjleonard.co.uk/?p=102
手順1 Instant Railsのインストール
Instant Railsは、以下のアプリを一発で入れる簡単インストーラとのこと。
・Ruby言語とパッケージマネージャ(RubyGems)
・Webサーバ(Apache/Mongrel)
・データベース(MySQL)
・Ruby on Rails本体
http://instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails
トップページの[Download]から InstantRails-1.4-win.zip をダウンロード。今回はC:\usr\InstantRailsに展開(フォルダ名にスペースがあるとダメらしい)。
InstantRails.exeを実行。「環境変数を変更しちゃうよ」みたいなダイアログでOKを選択。MySQLがStartedになっていなければStartする。Apacheはどうでもいい。
手順2 Tracksのインストール
公式サイトのDownloadsから「Tracks 1.043」のファイルアイコンをクリックしてダウンロード。
http://www.rousette.org.uk/projects/downloads/index
C:\usr\InstantRails\rails_apps\tracks-1.043 に展開。
手順3 Tracks設定ファイルの作成
C:\usr\InstantRails\rails_apps\tracks-1.043\configのフォルダを開く。
database.yml.tmplをコピーしてdatabase.ymlを作成。
environment.rb.tmplをコピーしてenvironment.rbを作成。ファイルを開いて"change-me"を適当な文字列に変更。
手順4 Tracks用データベースの作成
コマンドプロンプトから以下のコマンドを実行。
cd C:\usr\InstantRails\mysql\bin
mysql -uroot -p
(パスワードを聞かれるが設定していなければそのままEnter)
mysql> create database tracks;
mysql> create database tracks_development;
mysql> create database tracks_test;
mysql> grant all on tracks.* to rails@localhost;
mysql> grant all on tracks_development.* to rails@localhost;
mysql> grant all on tracks_test.* to rails@localhost;
mysql> exit
手順5 Tracks用テーブルの作成
コマンドプロンプトから以下のコマンドを実行。
cd C:\usr\InstantRails\rails_apps\tracks-1.043
C:\usr\InstantRails\ruby\bin\rake migrate
手順6 Tracks起動
Instant Railsの「I」ボタンクリック
Rails Applications → Manage Rails Applications..
tracks-1.043にチェックを入れる
「Start with Mongrel」を押す
手順7 ユーザ登録
http://localhost:3000/signup にアクセスしてユーザ名とパスワードを設定
手順8 ログイン
以降は、http://localhost:3000/ にアクセスすればログイン画面が出る
これでとりあえず操作できるようにはなりました。本格的に使うにはたぶんセキュリティ関係の設定をちゃんとしないとまずい気がします。
2006年11月22日
TiddlyWiki2.1対応日本語メッセージバグ修正他

TiddlyWikiには各国語翻訳用に、表示メッセージだけを一箇所に集めたLingo.jsというプラグインがあるのですが、それにはちょっとした不具合があって、そのまま訳すとcookieに記録された署名が上書きされてしまうので修正。
JapaneseTranslation
cookieに記録されているかどうかの判別方法は、ドイツ語翻訳版を参考にしました。
レイアウト等をカスタマイズするときの参考によく読んでいたサイト、素敵なTiddlyWikiが最新版になってリニューアル。デザイン素敵すぎ。
2006年11月12日
ソフトウェアエンジニアのためのGTD

GTDはサラリーマンよりもフリーランスのような仕事をしている人に、より有効であると言われています。自分の場合も、実はメインの仕事であるソフトウェア開発プロジェクトについてはGTDを利用していません。
通常、ソフトウェア開発の現場では「数日で完了する期限付きのタスク」をWBSの最小単位(ワークパッケージ)として細分化し、各担当者が常時ひとつのタスクを担当するようにスケジューリングされます。そしてこれらのタスクは、ガントチャートやその他のツールにより開発チーム内で厳密に管理されています。
正しく管理された開発プロジェクトのタスクは時間と作業内容が明確であり、また意識しなくても忘れることがないため、GTDのいう「開ループ」としなくても良いように思います。毎日朝になれば通勤電車に乗るのと同じように、(プロであれば)自動的に進められる作業なのです。もちろん例外もあって、スケジュールどおりに行かない作業、たとえば設計の初期段階でやることがあまりにも混沌としている場合や、まともなリーダーのいないデスマーチプロジェクトで最優先のタスクをいくつも同時に抱えている場合だと、GTDを使ってタスクを整理することは有効かもしれません。
ソフトウェアエンジニアがGTDで行うべきは、スケジュール表に現れない作業の管理です。たとえば、資格取得やスキルアップのための勉強、将来的に役に立つかもしれない技術の調査、改善提案活動、年末調整や出張精算のような事務手続き、健康診断の予定、歓送迎会の準備といったようなことです。また、ブログやmixiの活動時間捻出、自宅の掃除、旅行の計画、大きな買い物、といったプライベート関係もGTDが有効だと思います。こうしてみると、サラリーマンとはいえども、数多くの混沌としたタスクを常に抱えていることがわかります。
こういったタスクは、スケジュール表で管理されている作業にくらべて優先度が下がってしまい、ギリギリになってやったり、時間切れであきらめたりすることが多いと思います。忙しいエンジニアの日常とはそういうもんだ、と慣れてしまった人も多いでしょう。GTDを上手に実践することで、こういったことまで目が届くようになり、やりかけの作業が減って生活がシンプルになったように感じられるのが理想的だと思います。
2006年11月02日
Remember The MilkでTicklerFileを表示するGreasemonkeyスクリプト
GTDStyleWikiでわりと好評なTicklerFile表示機能を他でも使えるようにライブラリ化を試みています。てはじめにRemember The Milkに対応してみました。
自分自身は職場の通信環境が悪いこともありオンラインツールはほとんど使っていませんが、Remember The MilkはGTD実践者にも人気が高くちょっと無視できない存在です。そんなわけで
●ダウンロード
rtmticklerfile.user.js
●インストール
日本語のGreasemonkeyスクリプトは文字化けするため、以下の手順でインストールする必要があるようです。
・通常のGreasemonkeyスクリプトの手順でインストールします
・GreasemonkeyのManage User Scriptsから、「RTM Tickler File」を選択してEditします
・文字化けしているので、全文をペーストしてUTF-8で保存しなおします
●仕様
・メニューの「全体」を選択するとTicklerFileを表示します
・1年以内の期限のタスクを各タブに表示します
・「@」キーで表示/非表示を切り替えます
・タブの操作はキーボードではできません、マウスを使ってください
・キーボードやマウスの操作があった場合、5分後にATOMを取得して内容を更新します
・操作がないときは1時間毎にATOMを取得して内容を更新します
●動作環境
・Firefox(1.5/2.0) + Greasemonkey
まだまだバグや使いづらい点があると思います。
2006年10月07日
TiddlyWiki2.1対応日本語メッセージ他

TiddlyWiki用日本語メッセージのVersion 2.1対応版作りました。ImportTiddlersやPluginManagerのメッセージにも対応してます
http://www.geocities.jp/wikistyle/#JapaneseTranslation
さてVersion 2.1ですが、バグがいろいろと残っているようでリリース後もちょこちょこ更新されています(10月6日現在は2.1.2)。前回書いたダッシュ書式(--)のバグはもう直っています。手元のTiddlyWikiファイルもほとんどバージョンアップしましたが、今のところ大きな問題は出ていません。
ソースを読むと、細かく追加変更が行われているようです。
(1)プラグインマネージャ機能(PluginManager)
ver2.1.2現在、バグがあってプルダウンで操作を指定しても機能しません。以下のように修正すると動きます。
2543行目付近
NG config.macros.plugins.onSelectCommand = function(command,rowNames)
OK config.macros.plugins.onSelectCommand = function(listView,command,rowNames)
(2)記事のインポート機能(ImportTiddlers)
ローカルファイルだけでなく、サーバ上のTiddlyWikiからも必要な記事だけ持ってこられます。プラグインのインストールが楽になるかも。
(3)パレット指定(ColorPalette)
画面の色だけ調整したい場合、大量のスタイルシートを探索しなくてもColorPaletteという記事で簡単に指定できるようになりました。
(4)取り消し線の書式変更(== → --)
既存のファイルをバージョンアップした場合、この変更によって表示が乱れることがときどきあります。従来の書式もサポートするためにLegacyStrikeThroughPluginというプラグインが添付されています。
(5)箇条書等の改行には<<BR>>マクロは今後使わない方向
今のところ<<BR>>マクロも使えますが、<BR>タグが推奨されています。
(6)定義型リストの(dl、dt、dd)がサポート
これは自分としてはちょっと嬉しいです。以下のように行頭にセミコロンとコロンを指定します。
;タイトル1
:説明1
;タイトル2
:説明2
(7)CSSクラス名指定の文字装飾
便利かどうかは分かりませんが、{{warning{文字列}}}のように指定できます。
(8)起動パラメータstory、searchRegExpの追加
起動時にURL#story:StartupTiddlersのようにすると、(DefaultTiddlersの代わりに)StartupTiddlersという記事を見て、その中に指定された記事を全て開きます。
起動時にURL#searchRegExp:new[TJ]のようにすると、本文が正規表現にマッチするtiddlerを全て開きます。ただこれもver2.1.2現在バグがあり、以下のように修正する必要があります。
730行目付近
NG story.prototype.search(v,false,true);
OK story.search(v,false,true);
(9)プラグインのバージョン適合チェック機能
プラグインのコメントに CoreVersion: 2.1.2 のように書いておくと、そのプラグインはTiddlyWiki ver2.1.2より以前のバージョンではロードされないようになります。ただしこの機能が実装される前の2.0.x等では意味を持ちません。また、バージョンが適合しなくても、プラグインマネージャでForcedを選ぶと強制ロードされます。
(10)保存エラー時に自動的に表示される記事
TiddlyWikiを最初に使う人にとって保存できないというトラブルが多いようです。そのため保存エラーが発生したときにSaveChangesというタイトルの記事があると、その内容を自動的に表示するような機能が用意されました。SaveChangesには保存時のトラブルシューティングのような内容を書いておけば良いと思います。
また、リリースノートによるといろいろリファクタリングをして速度の改善を図っているようです。細かいバグが落ち着いてきたらGTDStyleWikiもver2.1ベースに上げる予定です。
2006年09月30日
TiddlyWiki バージョン2.1.0リリース

TiddlyWikiの新バージョン2.1.0がリリースされました。NewVersionという記事に追加された機能が紹介されているのでちょっと訳してみます。
これは2006年9月29日にリリースされたTiddlyWikiのバージョン2.1だよ。いろいろ新しくしたから、既存のユーザが大事な文書をアップグレードするときは要注意だぜ。
新機能:
・プラグインや記事を簡単に共有するためのImportTiddlersマクロ
・TiddlyWikiの強力なプラグイン機能を、より視覚的に管理できるPluginManager
・OperaやSafariなど各種プラットホームでセーブ機能を実現するTiddlySaver Javaアプレット
・MinimoやNokia 770でもセーブ可能にしたよ
・TiddlyWikiの配色を簡単に設定するColorPalette
・記事の一部を取得するためのTiddlerSlicing(訳注*1)
・ダッシュ書式のサポート(訳注*2)
・その他もろもろ(リリースノートを見てくれよな)
*1
INIファイルのようにキーワードと値のペアを設定するための機能。ColorPaletteの配色定義や、プラグインのバージョン管理等に使用することを意図しているらしい。AAAという記事の中でBBB: CCCのように定義しておくと、他の記事から<<tiddler "AAA::BBB">>のようにしてCCCが参照できる。スタイルシート内では[[AAA::BBB]]のようにして参照できるらしい。
*2
「--」と書くと「—」に変換するものだが、2006年9月30日現在バグがあって機能しない。以下のようにすれば動く。
1427行目
誤 createTiddlyElement(w.output,"span").innerHTML = "&mdash";
正 createTiddlyElement(w.output,"span").innerHTML = "—";
さて、GTDStyleWikiがそのまま動くかどうか検証しなくちゃ。
2006年09月26日
TiddlyWikiでプラグインを一覧から隠す

TiddlyWikiでプラグインを多く導入していると、更新順表示タブ等でプラグインと自分の作成した記事が混ざって視認性が悪くなってしまいます。そのため、更新者名が「設定」の署名と同じ記事のみ一覧表示するプラグインを作成しました。これにより表示が変わる箇所は以下の通りです。
・更新順タブ
・全てタブ
・タグタブ
・その他-未定義タブ
・その他-未参照タブ
インストール方法
こちらの内容をTIddlyWikiの新規記事にペースト。systemConfigタグをつけて保存。リロード。
プラグインなど表示したくない記事を導入する場合、一時的に署名をadminのような名前にすると良いと思います。署名を変更したときは、リロードしなくても変更が有効になります。
2006年09月23日
GTD Style Wiki Tips: タスク名の重複を回避する

こちらのエントリーにある問題について考えてみました。簡単に言うと以下の2点です。
(1)「○○氏に電話する」というようなありがちなタスク名の場合、既存タスクと名前がかぶることが多く、その都度ユニークなタスク名を考えて入力しなおすのが面倒
(2)todoマクロを使って一括登録する場合、タスク名がかぶっていると登録されない
TiddlyWikiでは、記事タイトルはデータベースでいうところの主キーにあたるためユニークでなければなりません。したがってこの前提をくつがえすような改造はかなり大掛かりになる上に、今後TiddlyWikiのバージョンアップに対応できない可能性が高くなってしまいます。
そこで現実的な対応方法として、以下の方針で考えてみました。
(1)への対応
・既存タスクと同名の場合、末尾に連番を付加してユニークな名前にする
(2)への対応
・「プロジェクト」タグがついている記事でtodoマクロを使った場合
各タスクの先頭にプロジェクト名を付加する
・先頭にプロジェクト名をつけても既存タスクとかぶる場合、末尾に連番を付加する
本機能を次のバージョンアップ内容に含めるかどうかは未定です。(1)は本来のTiddlyWikiの挙動とことなってしまうのであまり入れたくないですが、(2)の前半は入れてもいいかも。
導入方法:
GTDStyleWikiで以下の内容の新規記事を作成し、保存、リロード
タイトル:任意(ただしGtdTodoMacroよりもソート順で後になること)
タグ:systemConfig
本文:以下の内容をペースト
//{{{
Story.prototype.saveTiddler = function(title,minorUpdate)
{
var tiddler = document.getElementById(this.idPrefix + title);
if(tiddler != null)
{
var fields = {};
this.gatherSaveFields(tiddler,fields);
var newTitle = fields.title ? fields.title : title;
if(store.tiddlerExists(newTitle) && newTitle != title)
{
// 2006.09.22 ------------
var n = 1;
var tmpTitle = newTitle;
while (store.tiddlerExists(tmpTitle)) {
tmpTitle = newTitle + "_" + n;
n++;
}
newTitle = tmpTitle;
// -----------------------
}
tiddler.id = this.idPrefix + newTitle;
tiddler.setAttribute("tiddler",newTitle);
tiddler.setAttribute("dirty","false");
if(config.options.chkForceMinorUpdate)
minorUpdate = !minorUpdate;
var newDate = new Date();
store.saveTiddler(title,newTitle,fields.text,
config.options.txtUserName,
minorUpdate ? undefined : newDate,
fields.tags);
if(config.options.chkAutoSave)
saveChanges();
return newTitle;
}
return null;
}
config.macros.todo.onClick = function()
{
var m = config.macros.todo;
if (!confirm(m.alert))
return false;
var title = this.getAttribute("tiddler");
if (title == "") {
return false;
}
// 2006.09.22 --------------
var isProject = store.getTiddler(title).
isTagged("プロジェクト") ? true : false;
// -------------------------
var text = store.getTiddlerText(title);
while (text.match(/<<[^>]*>>/) != null)
text = text.replace(/<<[^>]*>>/, "");
while (text.match(/\/%[^%]*%\//) != null)
text = text.replace(/\/%[^%]*%\//, "");
while (text.match(/%[%\$] ?/) != null)
text = text.replace(/%[%\$] ?/, "");
while (text.match(/\[\[|\]\]/) != null)
text = text.replace(/\[\[|\]\]/, "");
list = text.split("\n");
var cnt = 0;
for (var i = 0; i < list.length; i++) {
var s = list[i];
var indent = "";
if (s.match(/^((\s| )+)/))
indent = RegExp.$1;
s = s.replace(/^(\s| )+/,"");
s = s.replace(/(\s| )+$/,"");
if (s == "")
continue;
// 2006.09.22 --------------
if (isProject)
s = title + ": " + s;
var n = 1;
var tmpTitle = s;
while (store.tiddlerExists(tmpTitle)) {
tmpTitle = s + "_" + n;
n++;
}
s = tmpTitle;
// -------------------------
list[i] = indent + "%% [[" + s + "]]";
cnt += m.createTiddler(s);
}
var tiddler = store.createTiddler(title);
tiddler.set(title, list.join("\n"));
refreshDisplay();
story.refreshTiddler(title, DEFAULT_VIEW_TEMPLATE, true);
alert(m.message.replace(/%0/, String(cnt)));
return false;
}
//}}}
2006年09月22日
日経産業新聞のライフハック紹介記事
9/21の日経産業新聞の「企業人の情報整理術」というコーナーにライフハックの紹介記事が載ってましたね。いよいよ説明抜きで一般にも通じる言葉になってきたのかも。内容はその手の本やブログを読んでいる人にはおなじみのことなので、わざわざ取り寄せて読むこともないとは思いますが。
・ライフハックとは
・GTD(フロー図付)
idea*idea田口氏コメント
・RSSリーダー、ソーシャルブックマーク
シックス・アパート金子氏コメント
・腰リール
チェンジビジョン懸田氏コメント
・三色フォルダ
・Hipster PDA
・check*pad
しかし、あらためて考えてみると日本発のhackってまだまだ少ないですね。腰リール、三色フォルダ、バブルマップくらいかな。もっといろいろ出てくるとさらに面白くなってくるのにな。
・ライフハックとは
・GTD(フロー図付)
idea*idea田口氏コメント
・RSSリーダー、ソーシャルブックマーク
シックス・アパート金子氏コメント
・腰リール
チェンジビジョン懸田氏コメント
・三色フォルダ
・Hipster PDA
・check*pad
しかし、あらためて考えてみると日本発のhackってまだまだ少ないですね。腰リール、三色フォルダ、バブルマップくらいかな。もっといろいろ出てくるとさらに面白くなってくるのにな。