TextMateでGauche

Posted by yatsu Tue, 18 Mar 2008 10:27:41 GMT

『プログラミングGauche』を読んでいます。

TextMateでSchemeを書くには、Scheme.tmbundleを使えばよいのですが、⌘R でファイルを実行するときに gosh を使うには、以下の変更をして、設定の「Advanced」→「Shell Variables」で TM_SCHEME_INTERPRETERgosh とすればいいようです。

diff -uNr Scheme.tmbundle.org/Commands/Run Script.plist Scheme.tmbundle/Commands/Run Script.plist
--- Scheme.tmbundle.org/Commands/Run Script.plist   2008-03-15 15:54:26.000000000 +0900
+++ Scheme.tmbundle/Commands/Run Script.plist   2008-03-15 16:42:15.000000000 +0900
@@ -28,6 +28,8 @@
    "$INTERPRET" -s "$TM_FILEPATH" 2>"$TM_ERRORTEMP" | "$SHOWOUTPUT" "$INTERPRET" "$TM_ERRORTEMP"
 elif [ $CMD = "guile" ] ; then
   "$INTERPRET" -s "$TM_FILEPATH" 2>"$TM_ERRORTEMP" | "$SHOWOUTPUT" "$INTERPRET" "$TM_ERRORTEMP"
+elif [ $CMD = "gosh" ] ; then
+  "$INTERPRET" "$TM_FILEPATH" 2>"$TM_ERRORTEMP" | "$SHOWOUTPUT" "$INTERPRET" "$TM_ERRORTEMP"
 fi

 # Delete tempfiles
diff -uNr Scheme.tmbundle.org/Support/showoutput.rb Scheme.tmbundle/Support/showoutput.rb
--- Scheme.tmbundle.org/Support/showoutput.rb   2008-03-15 15:54:26.000000000 +0900
+++ Scheme.tmbundle/Support/showoutput.rb   2008-03-15 17:02:29.000000000 +0900
@@ -126,7 +126,8 @@
 schemesystem = File.basename(interpreter)

 systems = { "csi"       => "Chicken Scheme",
-            "mzscheme"  => "PLT MzScheme" }
+            "mzscheme"  => "PLT MzScheme",
+            "gosh"      => "Gauche" }

 # Start HTML output.
 printheader(systems[schemesystem], interpreter)

Posted in ,  | no comments | no trackbacks

Norton AntiVirus for Mac

Posted by yatsu Tue, 18 Mar 2008 10:15:36 GMT

Leopard対応のNorton AntiVirus for Macを使ってみました。

AntiVirusを有効にすると、ほぼ1日に1回OSが落ちます……。 こんなに再現性があって致命的な問題がなぜ放置されているのか……。

ということで、もう使っていません。

クラッシュログを置いておきます。

Read more...

Posted in  | no comments | no trackbacks

Firefox 3に移行

Posted by yatsu Mon, 03 Mar 2008 11:36:25 GMT

今までFirefox 2を使っていましたが、Forefox 3.0b3に移行しました。 Macでは動作が軽くなり、見た目もかっこよくなって、すばらしいです。 Firefox lzyc buildにあるIntel Mac最適化版を使わせていただきました。

なぜかページソースを見ようとしても何も起きないので(何か変な拡張を入れたかも)、ViewSourceWithを使って任意のエディタ(自分の場合、CotEditor)でソースを開くようにして解決しました。

対応していない機能拡張はNightly Tester Toolsでむりやり動作させました。

しかし、keyconfigだけはそのままではダメでした。 keyconfig 20071212.2 日本語版であればFirefox 3で使えるのですが、「新しいキーを追加」でダイアログを開いてから「OK」を押せません。 KeryconfigをFirefox 3 Betaで使えるようにする の最後に書かれている修正 documentgDocument を適用したら直りました。

自分で修正するのが面倒な方はこちらからどうぞ。
keyconfig-20071212.2-ja-modified.xpi

keyconfigはSafariのように「⌘{」「⌘}」でタブ移動するために必要なのです。まだSafariの癖が抜けきれていないという……。

Posted in ,  | no comments | no trackbacks

3-Way Merge

Posted by yatsu Sun, 02 Mar 2008 10:21:57 GMT

TextMateのBlogでChangesというdiffマージツールが紹介されていました。

MercurialでコンフリクトしたときのためのMac OS X用3-Wayマージツールが欲しいと思っていたので少し調べてみましたが、3-Wayはサポートされておらず、Feature Wishlistによると、バージョン2で実装される予定とのこと。

ついでに他のものも探してみたところ、以下のアプリが3-Wayをサポートしているようです。

Araxis Mergeは高すぎ(いくら円高と言っても!)なので、DiffMergeを使用してみましたが、なかなかよい感じです。

Mercurialで使用する場合、付属のコマンドラインツールを /usr/local/bin/diffmerge にコピーし、 ~/.hgrc に以下の設定をするだけで使えました。

[ui]
merge = diffmerge

Posted in  | no comments | no trackbacks

InputHiliter 2.0を公開

Posted by yatsu Sat, 01 Mar 2008 10:43:34 GMT

Mac OS X 10.5でついにAPEが使えるようになりました。 Unsanity.org: Enthusiastic Trepidation からAPE 2.5b1をダウンロードできます。 WindowShade(ウィンドウをタイトルバーだけの表示に切り替えるアプリ)がないと生きていけないので、とても助かりました。 Leopard対応のAPEをリリースするまでの苦労話が上記Unsanityのページで読めます。

ちょうどよい機会なので、拙作のInputHiliterもLeopard + APE 2.5で動作するように作り直し、バージョン2.0をリリースしました。 Mac OS Xで「ことえり」などの入力プログラム(インプットメソッド)で漢字変換(または他の言語の変換)をするときに、変換中の文字に色をつけて強調表示してくれるものです。

InputHiliter
(ホームページも少しマシなものを用意しました)

今回からUnsanity Installerを使わせてもらいました。 APEをインストールしていない場合、インストーラがAPEも一緒にインストールしてくれるので便利です。 Unsanity.org: Pragmatic Disillusionmentによると、Unsanity Installerはサードパーティが自由に使ってよいそうです。ただし、まったくドキュメントがないので、WindowShadeのインストーラをコピーして、試行錯誤する必要がありました。(もし誰か希望する人がいたら、やり方を書いてもかまいません。)

ソースコードの管理はGoogle Codeを使わせてもらうことにしました。

inputhiliter - Google Code

LeopardになってからCocoa APIも少し変わったようで、今まで [NSTextView setMarkedText:selectedRange:] でフックしていたのを、[NSTextView setMarkedText:selectedRange:replacementRange:] に変更する必要がありました。

また、CからObjective-CのLow Level APIを通してNSRange(CFRange)を返す関数を呼び出すとき、PowerPCのときは以下のようにしていたのですが、

CFRange markedRange;
objc_msgSend_stret(&markedRange, inObj,
                   NSSelectorFromString(CFSTR("markedRange")));

IntelだとABIが互換でないため objc_msgSend_stret() はクラッシュするとのこと……。 以下のように変更する必要がありました。ややこしい。

CFRange (*markedRangeFunc)(void *id, void *SEL) =
  (CFRange(*)(void *id, void *SEL)) objc_msgSend;
CFRange markedRange =
  markedRangeFunc(inObj, NSSelectorFromString(CFSTR("markedRange")));

逆に今回はPowerPCで動作確認していないので、動作するのかわかりません。 どなたか試してみた方がいらっしゃいましたら、報告していただけると助かります。
(でも、アプリがクラッシュする可能性があるので、気をつけて!)

Posted in ,  | no comments | no trackbacks

MacUIM-0.5.2-8

Posted by yatsu Mon, 11 Feb 2008 14:42:37 GMT

ekatoさんのところでMacUIM-0.5.2-8が公開されました。

追記 2008.2.29

MOONGIFTで紹介されました。

MOONGIFT: » ことえりからの脱却「MacUIM」:オープンソースを毎日紹介

Posted in ,  | no comments | no trackbacks

Leopardでmate

Posted by yatsu Tue, 30 Oct 2007 12:26:21 GMT

LeopardでTextMateのmateコマンドを実行すると、

mate: failed to establish connection with TextMate.

というエラーが出て困っていたのですが、Nabble - mate command and screen in Leopard によると、Leopardのscreenと併用したときに起こる問題のようです。 MacPortsのscreenなら大丈夫と報告されていますが、FinkのscreenもOKでした。

Posted in , ,  | no comments | no trackbacks

Leopard

Posted by yatsu Tue, 30 Oct 2007 12:18:23 GMT

Leopardを購入。

MacUIMはそのまま動いたので、ほっとしました。

Unsanityのアプリがほとんど全滅なのが痛いです。

Posted in ,  | no comments | no trackbacks

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

Older posts: 1 2 3 ... 53