Path Finderとターミナルの連携 (pfコマンド)

Posted by yatsu Sat, 09 Jun 2007 15:49:21 GMT

Path Finderをメインとして使用していて、ときどきターミナルを開く場合、Path Finderの下ドロワーを使えば、現在のパスでターミナルを開いてくれるので、不便は感じません。 また、Path Finderの外のターミナルを使用している場合も、そのターミナルにフォルダをドラッグ&ドロップすれば、末尾にスペース1つを付けて貼り付けてくれるので、連携は完璧です。

ところが逆にターミナルをメインとして使っていて、ときどきPath Finderを使う場合、カレントフォルダをPath Finderに渡すのが不便です。

open -a "Path Finder" <フォルダ>

のようにフォルダを指定してPath Finderを起動することができますが、すでにPath Finderを起動している場合、ウィンドウが新たに開かれてしまうのがいやです。

そこで、以下のpfコマンド(シェルスクリプト)を用意しました。

#!/bin/sh

if [ "$*" != "" -a -d "$*" ]; then
  dir="$*"
else
  dir=`pwd`
fi
open -a "Path Finder"
osascript -e "tell application \"Path Finder\" to reveal \"$dir\""

これは指定されたフォルダを、Path Finderの新しいタブで開いてくれます。 すでにそのフォルダをどこかのタブで開いている場合、そのタブに切り替わります。

使い方は、上記のコードを /usr/local/bin/pf などに保存し、以下のように呼び出します。

pf <フォルダ>

フォルダを省略した場合は、カレントフォルダが開かれます。

open -a "Path Finder"

の部分でPath Finderを起動しています。すでに起動されている場合は、Path Finderが前面にきます。

osascript -e "tell application \"Path Finder\" to reveal \"$dir\""

の部分でPath FinderにAppleScriptコードを送っています。 revealでパスを指定すると、そのパスでタブを開いてくれます。

Posted in  | no comments | no trackbacks

MacからWindowsにSwitchするためのツール

Posted by yatsu Thu, 07 Jun 2007 16:11:18 GMT

Macで使っているツールと同じ機能をもつWindowsツールを探しました。 他によいものをご存じの方、教えてください。

ツールの種類 Mac Windows
ランチャー (*1) Quicksilver Launcy
ファイラー Path Finder UltraExplorer
仮想デスクトップ VirtueDesktops WinDeskWide
仮想端末 Terminal.app Poderosa+Cygwin (*2)
ズーム(プレゼン用) Mac OS X標準 (*3) 梨ズーム
タイトルバーだけ表示 WindowShade X WinRoll
ビームカーソルの白縁取り (*4) Mac OS X標準 Snow Coat

(*1) タイプしたキーからインクリメンタルにアプリを探してくれるため、アプリの登録作業が必要ないもの

(*2) Cygwin用GNU screenはこちら

(*3) ⌘ + マウスホイール

(*4) これがないと黒背景のエディタでカーソルが見えない

Macのソフトを基準にして探しているからでしょうが、似たようなソフトがあるけれど、どれもWindowsの方が使い勝手がちょっと悪いという感じです。

あと、Growl, MenuMeters, PTHPasteboard PRO(フィルタ機能付きのPRO)に相当するものがほしいのですが、あるのでしょうか?

じつは、いちばん困っているのはIMEでAZIK入力ができないことだったりします。 AZIK for MS-IME のレジストリデータは完全でないので、かえって混乱しがちです。 ATOK買うしかないでしょうか?

Posted in ,  | 3 comments | no trackbacks

ruby-pytstをRubyForgeに登録

Posted by yatsu Mon, 04 Jun 2007 07:00:13 GMT

ruby-pytstのソースが行方不明になっていたので、RubyForgeに登録しました。

RubyForge: ruby-pytst

初めてRubyForgeに登録したのですが、WikiとSVNブラウザがエラーになります。なぜでしょうね?

ruby-pytstは、Wiki文章中のキーワード一括置換のために毎日使用していますが、半年以上、安定動作しています。

以下、READMEを載せておきます。

ruby-pytst

ruby-pytst is a port of pytst to Ruby. It is a implementation of Ternary Search Trie (TST) and it also supports scanning by the Aho-Corasick algorithm. It is built with SWIG.

This software is distributed under LGPL.

I have successfully built on the following environments.

  • (1) Mac OS X 10.4, Ruby 1.8.4 (Fink)
  • (2) Fedora Core 5, Ruby 1.8.4

tst_wrap.cxx in this package was generated on (1) with SWIG 1.3.19.

Author: Masaki Yatsu <yatsu at yatsu.info>

Installation

Generate the Makefile.

% ruby extconf.rb

Make it.

% make

Then, install it as root.

% make install

If you want to generate the Ruby wrapper codes from tst.i by yourself, execute the following at the beginning.

% swig -c++ -ruby -Iinclude tst.i

How to Use

There is no documentation at this point, but there is README.html of pytst in the doc directory.

There are examples in the example directory. You can run examples like this.

% ruby example/tokenize.rb

ruby-pytst supports following character sets.

  • ASCII ($KCODE = ‘NONE’)
  • EUC-JP ($KCODE = ‘EUC’)
  • Shift_JIS ($KCODE = ‘SJIS’)
  • UTF-8 ($KCODE = ‘UTF8’)

You have to specify $KCODE before you create a Pytst::TST.

There is the EUC-JP example in the example directory.

% ruby -Ke example/japanese_euc.rb

The option -Ke means $KCODE = 'EUC'.

See also

pytst:
http://nicolas.lehuen.com/download/pytst/

Ternary Search Trie:
http://en.wikipedia.org/wiki/Ternarysearchtries

Aho-Corasick algorithm:
http://en.wikipedia.org/wiki/Aho-Corasick_algorithm

Posted in ,  | no comments | no trackbacks

こんなプロジェクト管理ツールがほしい

Posted by yatsu Sun, 03 Jun 2007 23:46:26 GMT

僕の要求は変かもしれないし、こんな考え方じゃダメとか言われるかもしれないけれど、書いてみる。

  • プロジェクトのタスク管理と個人のToDo管理(GTD?)が連動
    • GTDツールでdoneにすると、プロジェクトのタスクもdone
  • タスクのプライオリティは単純に順番で管理
    • 上にあるものが優先度が高い
    • 緊急のタスクは「critical」とかタグを打てばよし
    • ドラッグで順番入れ替え
  • 着手ビューで着手順に表示(優先度とは別管理)
    • これもドラッグで順番入れ替え
    • 着手しているものをチェック(複数可)
      • 「おれ今これやってるから」(twitter感覚で)
  • タスクに所要日数の見積りを入力
    • 「誰が何日」で入力
      • 人によって所要時間が違うから最初から仮アサインしてしまう
      • アサインされる人が代わったら見積もり直し
    • 見積り日数がマイルストーンまでの日数を超えたらアラート
  • ソースレポジトリ、バグ管理システムと連動(IDで紐づけ)
    • ソースcommit時のメッセージにタスク番号を埋め込み(Tracと同じ)
    • タスクとchangesetがリンクされ、ソースレベルで進捗が確認できる

プログラマの立場から言うと、タスクの順番はなるべく柔軟に入れ替えて効率よくやりたい。→ 誰が何をやっているかちゃんとわかればよし。

線表はあまり必要だと思わない。 依存するタスク(あるチームの進捗が別のチームのタスクに影響するケースなど)も出てはくるだろうが、そのために線表を起こすよりは優先順・着手順の入れ替えで対処してしまいたい(ソフト開発/SIではそれほど依存はないと想定、スタブとか作るし)。

僕が関わるようなプロジェクトでは、こんなツールでうまく対処できるのではないかと思っています。

以下を試してみましたが、決定的なものは見つかっていません。作る?

Posted in  | no comments | no trackbacks