2005.07-12
2005.12.25
QuickDMG 2.0.3 を公開しました。
フォルダやファイルから手早くディスクイメージファイルを作ることができます。
- package を 通常のフォルダと同じように扱ってしまう不具合を修正。ファイルと同じように扱います。
2005.12.17
ファイルの default application を変更するには・・・・
Finder の情報ウィンドウで設定できるファイルを開くアプリケーションの設定をプログラムからやりたかったのだけど・・・・方法が見つからない!!Finder や System Events の AppleScript 辞書にも、Launch Services や File Manager の API reference にも、それらしい物がない。誰か知っていらっしゃいましたら教えてください。
きっとできないんだろうな・・・・
2005.12.14
whichapp 1.0 を公開しました。
Unix シェル環境から Macintosh アプリケーションの場所を調べるコマンドラインツールです。シェルスクリプトで、Macintosh アプリケーションへのパスが必要なときに使ってください。
2005.12.13
神前さん、寄付ありがとうございました。
これで、7人目。本当にありがとうございます。これで食べていく訳ではないでが、非常に励みになります。
2005.12.07
GoFinder 1.0 を公開しました。
Finder で前面のウィンドウだけを最前面に持ってくる形で、Finder をフロントアプリケーションにします。スクリプトファイルの実行にショートカットキーを割り当てられるユーティリティー(DragThing、Keyboard Maestroなど)に登録して使うと便利です。
多くの場合、作業中のフォルダは Finder で前面にあるかと思います。そのフォルダからファイルをドラッグ&ドロップしたいなどの理由で、通常の方法(Dock 内のアイコンをクリックするなど)でフロントアプリケーションを Finder に切り替えると Finder のウィンドウで画面が覆い尽くされてしまい、ドラッグ&ドロップ先が見えなくなってしまうこともしばしばかと思います。GoFinder を使えば、よけいな Finder Window で画面が覆い尽くされずにすみます。
おまけの機能として、Finder がフロントプロセスにある状態で GoFinder を実行すると、すべての Finder WIndow を前面に持ってきます。
2005.12.06
Show Project in Terminal 1.0 を公開しました。
Xcode の最前目のプロジェクトのフォルダを working directory としたターミナルを 開きます。僕はもっぱら CVS コマンドの実行に使っています。
Xcode 2.1 (MacOS X 10.4.3) と 拙作 SmartActivate が必要です。
以前、Show Project in iTerm という物を公開しておりました。iTerm だと複数のターミナルを一つのウィンドウにまとめられて画面スペースを節約するのにとても重宝しておりましたが、SmartActivate のおかげで必要なウィンドウだけを前面に持ってこられるようになったので標準のターミナル.app を使った物に作り替えました。
PayPal で donation(寄付)を受け付けられるようにしました。
大して寄付が集まる訳でもないのに、受け入れ口を増やしました。うまくいくかどうかわからないので、誰か試しに寄付してください・・・・。
2005.11.30
Miura さん、寄付ありがとうございました。
大して反響もなく(たいした作品を公開していないのが一番の原因かと思いますが) 、作品を公開する意義に疑問を感じることもしばしばですが、ささやかでもご支援いただけると励みになります。これで、6人目。
2005.11.29
QuickDMG 2.0.2 を公開しました。
フォルダやファイルから手早くディスクイメージファイルを作ることができます。
MacOS X ではディスクユーティリティーでディスクイメージファイルを作成できますが、とても煩雑な操作が必要です。QuickDMG を使えば、手軽にディスクイメージファイルを生成できます。
とくに、圧縮ディスクイメージファイルは Zip や StuffIt 形式の圧縮ファイルとは違い、「解凍しなくても中のファイルを開く事ができる」と言うという特徴がありますので、僕は、アーカイバとして利用しています。あまり開かないけど捨てる訳にも行かないファイル等の圧縮や、バックアップに最適です。
- 保存場所に書き込み権限がない時のエラー処理を追加
- MacOS X 10.4 で動作確認
2005.11.21
TerminalCommander 1.4 を公開しました。
ターミナルでのシェルコマンドの実行を支援するライブラリです。ターミナルウィンドウを追跡し、同じターミナルでのコマンドの実行、コマンドの終了の検出をする事ができます。
SmartActivate を使用して Terminal.app をactivate するときは、最前面のウィンドウだけにするようにしました。
2005.11.19
FileClipper 1.2.2 を公開しました。
クリップボード経由での、ファイルのコピー、移動、エイリアスファイルの作成を実現するアップルスクリプトです。OnMyCommandCM か Quicksilver から起動して使うのがおすすめです。
- DOS format のディスクからのコピーの際にコピー先に同じ名前があると、エラーが発生する不具合に対処
- OnMyCommandCM の launcher command を OnMyCommandCM 1.7b1 の物に更新
あまり関係ないですが、OnMyCommandCM の設定を行う アプリケーション OMCEdit の最近の日本語へのローカライズは僕が担当しています。まあ、あまり大した事をしていませんけどね。
2005.11.16
Name List View 1.0.3 を公開しました。
最前面の Finder Window を「ツールバーの無い名前欄だけのリスト表示」に変更します。
- フローティングウィンドウ(情報ウィンドウや表示オプションウィンドウ)を表示しているときにウィンドウのズームが行われない不具合を修正
2005.11.15
TeX Tools for mi 3.0.3 を公開しました。
- PDF ファイルが存在しない状態でツール「PDF ファイルを開く」を実行するとエラーが発生する不具合を修正(天羽さんありがとうございました。)
- カーソルが行頭にあるとき、「置換入力」を実行するとエラーが発生する不具合を修正
- ターミナルの設定ファイル com.apple.Terminal.plist に異常があるときのエラー処理を追加(天羽さんありがとうございました。)
- MacOS 10.4.3 での動作を確認しました。
2005.11.14
Name List View 1.0.2 を公開しました。
最前面の Finder Window を「ツールバーの無い名前欄だけのリスト表示」に変更します。
MacOS X 10.4.(3) でエラーが発生する問題に対処しました。MacOS X 10.4 の Finder には AppleScript のバグがあるようです。以下のコードが動作しません。
この問題に対処するために UI Elements Scripting を使うようにしました。
ようやく、MacOS X 10.4 を導入しました。
2005.11.08
Open in Terminal 1.2 を公開しました。
Finder で選択されている場所が working directory になっている ターミナル を開きます。
SmartActivate のインストールが必要です。SmartActivate を使って、ウィンドウを1枚だけ前面に持ってくるようにしました。
2005.11.01
UnixScriptTools for mi 1.2.2 を公開しました。
- MacOS X 10.4 との互換性を改善したつもり
未だ、MacOS X 10.4 に移行していませんので、自分でテストしていないですが、MacOS X 10.4 で動かない要因を一つなくしました。
2005.10.30
SmartActivate 1.0 を公開しました。
指定したアプリケーションプロセスを、そのアプリケーションで最前面のウィンドウだけを前面に持ってくる形でフロントプロセスに切り替えるスクリプティング機能追加と、コマンドラインツールです。
初めて作ったスクリプティング機能追加です。Objective-C のコードをスクリプティング機能追加にしようとしたのでえらく苦労してしまいました。というのも、コードに Objective-C が混じっている場合、ADC の document と sample code にしたがって素直に OSAX を作るとスクリプトエディタ等いくつかのアプリケーションが終了時にクラッシュするようになってしまいます。なんでこのようなことが起きるかと言うと、OSAX は Loadable Bundle としての側面があり、Objective-C を使った Bundle は unload できなくて、アプリケーションが終了時に unload しようとしてしまうのでクラッシュするという事のようです。
そこで、SAIsBusy() で常に true を返すようにして unload できなくさせました。しかしこうしてしまうと SATerminate() が呼ばれなくなります。そこで、atexit を使ってプロセスの終了時に SATerminate() を実行されるようにしました。
以上の情報は、すべて applescript-implementers mailing-list で質問したり、過去ログをあさったりして得た物です。
2005.10.11
FilterScripts for mi 2.0.3 を公開しました。
- MacOS X 10.4 との互換性を改善したつもり
- エラーが表示されない不具合を修正
- 8KB 以上のエラー出力があると動作が止まってしまう不具合を修正
まだ、MacOS X 10.4 に移行していませんので、自分でテストしていないですが、MacOS X 10.4 で動かない要因を一つなくしました。あと、なぜか Interface Builder での nib ファイルのコネクションが切れまくっていましたが・・・誰も文句言って下さらないので、誰も困っていないのでしょうね。(いつもかつ、すべてがですが)自己満足アップデートです。
2005.10.04
Show Project in iTerm 1.0 を公開しました。
close で window が release されるのはしょうがなくない?
よくよく考えたら、AppleScript Stuido 1.3(Panther)でも、Interface Builder で「Release when closed」を設定すれば、ウィンドウの close で release されるはず(たぶん)。すると、Panther でもウィンドウを release する手段はある訳です。
やっぱり、AppleScript Studio 1.4 で、window が close されると window が release されるという仕様変更は不可解です。
2005.10.03
close で window が release されるのはしょうがない?
AppleScript Studio 1.4 で、window が close されると window が release されるという仕様変更が、Panther と Tiger の間で AppleScript Studio アプリケーションの互換性に大きな影響を及ぼします。なんでこんな仕様変更をしたのかよくわからなかったのですが、よくよく考えれば Panther では window を release する手段は call method を使うしか無いのですね。
僕は window を release する必要があるアプリケーション(例えば書類を扱うもの)を作ってこなかったので気付きませんでしたが、書類 window は close されたら release されないとメモリリークになります。というわけで、AppleScript Studio 1.4 での仕様変更はしょうがない物なのかもしれないとおもうのですが・・・やっぱりガーベジコレクションとか、もっと良い解決策は無かったのかしら?
2005.10.01
TeX Tools for mi 3.0.2 を公開しました。
- MacOS X 10.4 でエラーが発生する不具合を修正したつもり。
- 僕は、未だ MacOS X 10.3.9 を使っているので直接確認した訳ではないですが、原田さんに確認いただいたところ(ご協力、誠にありがとうございました)問題なく動作しているようです。
- 保存されていないファイルが最前面にある時にリファレンスパレットを表示するとエラーが発生する不具合を修正。
- PDF プレビューアの設定に関するバグを修正。
MacOS X 10.4 での AppleScript Studio の仕様変更により、うまく動いていなかったようです。
AppleScript Studio 1.4 の Release Note には以下のようにあります。
In Tiger, the "Release when closed" NSWindow attribute in Interface Builder is not honored. The window object is always released regardless of how this attribute is set.
The workaround is not to close the window, but instead to hide it if you want to keep it around. You can do this by adding an
on should close
handler to your application as shown in the following example:
on should close theObject
hide window "Main"
return false
end should close
僕は、未だに MacOS X 10.4 に移行していないので以下の話はすべて推測ですが、TeX Tools for mi が上記の仕様変更が原因で Tiger では動作しなくなる可能性は分かっていました。しかし、言われた通りに on should close
handler を追加するわけには行きませんでした。
というのも、Version 3.0 以降は機能の追加と将来の布石の為にウィンドウの制御はすべて Objective-C で行うようにしたからです。そして、すべてのウィンドウは NSWindowController の支配下に置きました。この場合、ウィンドウを close しても、ウィンドウは release されない、もしくは NSWindowController が良きに計らってくれると期待していましたが・・・・ 現実は甘くないようです。ウィンドウが表示されないという事は無いようなので、release はされないようですが、
[windowController close]
とすると、ウィンドウとその中身は AppleScript のことはきれいさっぱり忘れ、さらに AppleScript から姿を消すようです。たぶん、ウィンドウに close メッセージが送られると、release されなくてもそうなってしまうのでしょうね。
じゃあ、AppleScript Studio で hide に相当するメソッドは何なのか・・・Cocoa 歴がまだ半年ほどなのでなかなか分かりませんでした。
[[windowController window] orderOut:self];
とすれば、良いようです。さらに、NSWindowController のサブクラスを作って、windowShouldClose メソッドを override する必要があるでしょう。
- (BOOL)windowShouldClose:(id)sender
{
[[self window] orderOut:self];
return NO;
}
いずれも推測ですが、原田さんに試していただいた限りでは当たっているようです。
しかし、なんでこんな仕様変更がされたのでしょうね。素人の僕には、一見、改悪に思えます。なぜなら、AppleScript Studio と Objective-C が混在したアプリケーションを作る場合、Objective-C 側で AppleScript Studio の事をケアしてあげなければなりませんから。
FileterScripts for mi と UnixScriptTools for mi も同じ理由でエラーが発生するはずですが・・・何の報告も無いので利用者は皆無という事のようで・・・現実の厳しさを実感する今日この頃です。
2005.09.26
Rename PDF 1.0 を公開しました。
Acrobat で開かれている最前面の PDF ファイルのファイル名を変更します。 スクリプトメニュー等に登録して使って下さい。
2005.09.25
Close and Delete PDF 1.0 を公開しました。
Acrobat で開かれている最前面の PDF ファイルを閉じてゴミ箱に捨てます。 スクリプトメニュー等に登録して使って下さい。
斉藤さん、寄付ありがとうございました。
Open Scripts Folder 1.0 を公開しました。
スクリプトメニューで表示される最前面のアプリケーション用のフォルダを Finder で開きます。スクリプトメニューに登録して使って下さい。
2005.09.20
- FilterScripts for mi 2.0.2 を公開しました。
- mi で編集中のテキストを、AppleScript もしくは Unix スクリプト(bash、perl、awk、ruby、sed など)を使ってを加工する専用のインターフェースを提供します。
2005.09.16
- UnixScriptTools for mi 1.2.1 を公開しました。
- mi で Unix スクリプト(bash、Perl、awk、ruby、sed など)の開発および実行を支援するアプリケーションおよびスクリプトのセットです。Perl mode と bash mode の設定ファイルが付属します。
- ターミナルのカラー設定を保存できるようにした。
- 内部コードの整理
2005.09.15
- TeX Tools for mi 3.0.1 を公開しました。
- ツールパレットに作業状況を示すメッセージを表示するようにした。
- ログの解析を失敗することがある不具合を修正。
- リファレンスパレットをウィンドウシェードするとエラーが発生する不具合を修正。
- タイプセットに時間がかかると処理が中断してしまうことがある不具合を修正。
- version 3.0 でウィンドウの制御コードを Cocoa 化しました。独立した NSTimer を使って、ツールパレットとリファレンスパレットの表示/非表示を制御したかったからです。AppleScript だけだと、定期的な処理には idle handler しか使えないのでやりにくかったのです。しかし、AppleScipt のコードが実行されている最中に NSTimer が発動すると AppleScript の実行が中断されてしまうようです。そして、ウィンドウをクリックする等、何か刺激を与えてやると再び動き出します。原因を思いつくまで、えらく消耗しました。
- その他、細かい不具合の修正
2005.09.10
- TeX Tools for mi 3.0 を公開しました。
- ツールパレットを表示するアプリケーションを設定できるようにした。
- リファレンスパレットと TeXCompileServer を一つのアプリケーションに統合した。
- リファレンスパレットにリロードボタンを追加した。
- 起動時間の設定を削除し、mi の終了を検知して TeXCompileServer を終了させるようにした。
- さらに Cocoa 化が進みました。とくに、設定ウィンドウでは Cocoa Binding をできるだけ活用するようにしました。
2005.09.09
- FilterScripts for mi 2.0.1 を公開しました。
- 8 KB 以上のデータを扱えなかった不具合を修正
- pipe の buffer の大きさって 8KB に制限されているのですね。知らずに、何も考えずに実装してしまってました。
- すると大きなデータを扱う為には入出力を非同期で行わなければならないということで、スレッドを使って入力データを与えるようにしました。
- mi 2.1.6 で出力データの改行コードが正しく反映されない不具合を修正
- 8 KB 以上のデータを扱えなかった不具合を修正
2005.08.24
- UnixScriptTools for mi 1.2 を公開しました。
- mi で Unix スクリプト(bash、Perl、awk、ruby、sed など)の開発および実行を支援するアプリケーションおよびスクリプトのセットです。Perl mode と bash mode の設定ファイルが付属します。
2005.08.23
- FilterScripts for mi 2.0 を公開しました。
- mi で編集中のテキストを、AppleScript もしくは Unix スクリプト(bash、perl、awk、ruby、sed など)を使ってを加工する専用のインターフェースを提供します。
2005.08.21
- DateStamp 1.0 を公開しました。
- 現在の日付をクリップボードにコピーします。スクリプトメニュー等から起動して下さい。起動すると、ダイアログが表示され、いくつかの日付の書式を選択することができます。
2005.08.20
- ほぼすべてのコンテンツを MacOS X に対応させました。
- Strip Styles of Text 1.0 を公開しました。
- クリップボードの中のスタイル付きテキストからスタイル情報(フォント、色、サイズなど)を取り除き、プレインテキストに変換します。
- ワープロ等にテキストをペーストする時にプレインテキストに変換してから行うと、ペースト位置でのスタイル情報に従って貼付けることができます。
2005.08.19
- TeX Tools for mi 2.9.4 を公開しました。
- タイプセットのログ解析に失敗して、無限ループに陥ることがある不具合を修正
2005.08.18
- KeyValueDictionary 1.0 を公開しました。
- AppleScript で 連想配列を実現するライブラリです。
2005.08.17
- miclient 2.0.1 を公開しました。
- テキストエディタ mi でファイルを開き、指定した行を選択することができるコマンドラインツールです。
- TeX Tools for mi 2.9.x に含まれている物と同じ物です。
2005.08.16
- QuickDMG 2.0.1 を公開しました。
- フォルダーからディスクイメージを作るときに必要なサイズの見積もりを間違うことがある不具合を修正
2005.08.15
- QuickDMG 2.0 を公開しました。
- フォルダやファイルから手早くディスクイメージファイルを作ることができます。
- 初のフルCocoaアプリケーションです。
- どなたか、アイコンを作っていただけないでしょうか。
2005.07.25
- TeX Tools for mi 2.9.3 を公開しました。
- Mxdvi が最前面にある場合、ツールパレットの「DVI を PDF に変換」を実行すると、Mxdvi で開かれているファイルを PDF に変換するようにした。
- リファレンスパレットを開けないことがある不具合を修正(藤野さん、ありがとうございました)
- ツール「mendex を実行」が動作しないくなっていた不具合を修正(山崎さん、ありがとうございました)