このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Tanaka's osax PPC Native & OS X 対応への遥かな道

発言者:田中求之
( Date Thursday, June 29, 2000 00:52:13 )


さすがに HyperTalk コンパイラでは苦しい今日この頃なんで、やっとこさ
CodeWarrior を購入して、今後に向けた開発環境の以降を開始することにしま
した。

今はまだインストールしたサンプルやドキュメントを読んだり、開発環境の使
い方をぽちぽちマスターしようとしている段階です。なんせ、これまで
HyperCard + AppleScript で組み上げた自分流の開発環境でやってきた人間な
んで、戸惑うことしきり (^_^;;

とりあえずは Native osax の作成あたりを目標にしているので、言語は C で
手続き型のコーディングでゴリゴリやっていこうかと思っていたんですが、ま、
やっぱ C++ もやってみるかということで、C++ のテキストを読み返している
所です。過去に C++ ってどんなもんなのか気になったときに買って読んだオ
ライリーの C++ プログラミング入門とか C++ 実践プログラミングとか、その
へんの本です(言語のテキストを読むのは嫌いじゃないんです)。

で、C++ の場合、言語の作者(って言っていいのかな?)の Bjarne
Stroustrup 氏が情報満載のホームページを持っていたりするので、そこにあ
る FAQ とかの文献を読んだりしてるんですが、仕事柄(ってほどでもないけ
ど)文献漁りが好きなもので、色々な論争やインタビューがあると、ついつい
そっちも読んでしまうわけです。IEEE の会員にもなっているので、なんか関
連する文献で面白いのはないのか、IEEE の雑誌のアーカイブ(これを読みた
くて会員になったようなもんなので)を調べたりして… と、わき道にそれて
ばかりで、肝心の C++ のお勉強が全然進んでいない状況です。Hello, World
もまだやってない(笑)

夏休みの終わりまでには、簡単な osax を作れるようになりたいと思っている
んですが、本業の方で、今、差分機関、分析機関のチャールズ・バベッジにつ
いて論文を書こうとしているので(バベッジってマルクスが資本論で何度か言
及している経済の本も書いてる人なんですよ)、そっちの作業の進行次第って
とこもあって、はたしてどこまでやれるかな、ってところです。

ついでに、この夏の予定として…

・Tanaka's osax は、まもなく 2.0 GM1 (ちょっとした手直しだけのバージョ
ン)を出して、2.0 の正式版を出してしまう予定です。で、2.0 には組み込ま
なかったもの(個人的に依頼を受けて作ったものなど)をまとめた Tanaka's
Extra っていうのも出します。

・EasyBBS EX 2 も、ドキュメントをかいて正式版にします

・UVJ Mailer 2.0 も、まもなく正式版出します

・恒例(?)の、半年に1度の会議室アーカイブも、8月中には出したい

・EasyBBS DX III にコメントをつけまくった、コメンタール EasyBBS は間も
なく出します(最近、寝る前の楽しみとして書いてますので)。

重松修 さんからのコメント
( Monday, July 03, 2000 02:00:18 )

Tanaka's OSAX を C で開発されるのでしたら、何なりとおっしゃって
ください。時間と能力の許す限り、最大限お手伝いさせてください。
C はたいていのことはできると思いますが、C++ はまだまだ怪しいです。

ついでにといっては何ですが、REALbasic の plugin でも Tanaka's OSAX の
便利な機能を提供すると、よりシームレスに開発が可能かもしれませんね。

田中求之 さんからのコメント
( Monday, July 03, 2000 02:39:21 )

>時間と能力の許す限り、最大限お手伝いさせてください。

本格的な移行作業に入ったら、何かと皆さんのご協力を仰ぐことに
なるかとおもいますんで、その時はよろしくお願いしますね。

>REALbasic の plugin でも Tanaka's OSAX の
>便利な機能を提供すると

一時期は考えていたのですが、Rb の最近のリリース状況をみて、
この開発環境(Rb)に深い入りするのは止めておいたほうが良い
という判断に傾いています。

2.x があの状態で、なんでいきなり 3.0 なんてのを平気で出せる
わけ?? って、普通の人なら思うんではないかなぁ…

とりあえず、Rb は、Socket 周りを AppleScript で利用するための
補助ツールの開発環境と割り切って、当分、1.01 で開発を続ける
ことにしました(だって NthField が早いし、68K のコードが安定
してますから)。

WebSTAR もそうですが、オリジナルの開発者(哲学の保持者)が
いなくなると、どうも迷走状態に入りますね、ソフトは。やっぱ
きっちりとしたコンセプト(哲学)って重要だよなと思います。


それはともかく、C++ の教科書/参考書を読んでいると、HyperTalk
で Toolbox のプログラミングというのが、いかに低レベル(良くも
悪くも)だったのかを実感しますね。HT では、ポインタに1加えると
それはバイトのオフセットを1つ進めることでしかなかったし、
構造体のエレメントへのアクセスはバイトオフセットを計算してポイ
ンタやハンドルにオフセット分のバイト数を足して… って操作でし
たから。ま、その分、かえって何をしているのかは明快ですけどね。

重松修 さんからのコメント
( Monday, July 03, 2000 21:50:59 )

たしかに、2.1 のあの低すぎる品質と bug も直さず、3.0 を作り始める
神経はどうにもコメントしがたいものがあります。

田中先生のおっしゃるとおり、求心力がないというか、やっぱり
設計者が抜けたのはものすごく大きいですね。

それから、実行速度やファイルの大きさなどを考えれば、ToolBox を
使うのがよいのでしょうが、個人的には、ToolBox に依存しない
ANSI C/C++ を使って Program するのがよいと感じます。

田中求之 さんからのコメント
( Sunday, September 03, 2000 16:23:46 )

Tanaka's osax 2.0fc2 を出しました。

今回の変更点は、内部的な改良を別にすると、

1:MT Load IndexSTR Resource を MT Read Resource に吸収
  (Index を指定せずに STR# を読み込むと、丸ごとをリストにして返す)

2:MT Store IndexSTR Resource を MT Write Resource に吸収
  (Index を指定せずに文字列のリストを STR# に書き込むよう指示する)

3:MT Count Files, MT List Folders, MT Count Folders に新たなパラメータ
の追加(MT List Files のように細かく条件指示が可能に)

4:上記の3つと MT List Files の name contains の指定において、
〜から名前が始まる、〜で名前が終わる、名前が〜である、という条件の
指示を出せるようにした

":" で始まる文字列の場合は先頭一致
  -> name contains ":my" で my で名前が始まるものを探す

":" で終わる場合には末尾一致
  -> name contains ".html:" で名前の最後が .html のものを探す

":" で囲まれた場合には完全一致
  -> name contains ":script:" で名前が script のものをさがす

というようになりました。これまでの MT List Files では、パラメータの
先頭が ":" の場合には否定、つまり〜を含まないものを探す、という動作
になっていたのですが、今回のバージョンで仕様の変更を加えました。

こんなところです。

→  Tanaka's osax

田中求之 さんからのコメント
( Wednesday, September 13, 2000 11:38:44 )

2.0GM リリースしました。これでフリーズして、正式版を出します。

今回の変更点

1: Mt Write TextClip を MT Write Clipping に変更。
  → Picture をクリップに落としたり、テキストを URL Clipping にでき
   るようにしました。

2: MT Strip TailSpaces を MT Strip Spaces に変更
  → 行末だけではなく、行頭のスペースも除去できるようにしました。
   また、Tab も削除対象に含めることが可能になりました。

3: MT Pick Strings の triming パラメータのミススペルの修正
  → trimming という正しい綴りになおしました。

その他、内部的にコードの改良などを行っています。

なお、↓のページに、Tanaka's osax についてのコメントを書き込む
コーナーを作ってありますが、文字コードを ISO8859-1 に設定して
ありますので、日本語での書き込みはできませんのでご注意ください。
(日本語の読めない方はこの会議室が使えませんので、そのかわりに
作ったコーナーです)

→  Tanaka's osax

田中求之 さんからのコメント
( Wednesday, September 13, 2000 16:02:10 )

…知らない間に VersionTracker.com に掲載されるようになってる (^_^;;

→  VersionTracker.com

たまちゃん さんからのコメント
( Wednesday, September 13, 2000 16:35:00 )

前からですよ。(^_^)

もっとすごいのは,下のページです。
ページ下の方にある Think ****** の部分を見て下さい。(^_^;;

→  ザウルスポッケにねじこんで

田中求之 さんからのコメント
( Friday, September 15, 2000 00:55:05 )

>ページ下の方にある Think ****** の部分を見て下さい。(^_^;;

よくわからないのですが、これって、私とは何の関係もないですよね?
(田中っていっぱいいるからな)

たまちゃん さんからのコメント
( Friday, September 15, 2000 12:44:07 )

>よくわからないのですが、これって、私とは何の関係もないですよね?

と思います。 書いたご本人は Macintosh 使いなので,田中さんのことは
ご存知かもしれません。

私が毎日見ているページなので,「いつも田中さんのことは考えてるよん」
と思いつつ眺めています。 (^_^;;

田中求之 さんからのコメント
( Monday, September 18, 2000 17:23:37 )

Tanaka's osax には含めないけど、作っちゃったので公開しておこうという
ものを集めた Tanaka's Extra という osax を公開しました。

Tanaka's osax から削ったクリップボードのコマンドが2つ入っていますが、
それ以外に、

MT Recent Item --- フォルダの中の一番新しいものを探す
MT Get Name --- ファイル名を得る(alias や FSpec 型のデータから)
MT Delete --- ファイルの削除

という3つが入ってます。


→  Tanaka's osax

野本夏俊 さんからのコメント
( Friday, September 22, 2000 12:59:01 )

とうとう正式版がでるのですね?
待ちに待った(というか私の環境ではずいぶん前から2.0が標準ですが)正式版。
楽しみにしています。
MT Strip Spaces すばらしく便利です。ありがとうございます。
できれば、2バイトのスペースも削除できるようにならないでしょうか?
これができるとなおさら助かります。ご検討ください。

また、リソース関連としてタイプとIDを指定してリソースのサイズを取得する機能を加えていただけないでしょうか?
PICTリソースなどでたまに1MBを超えるようなモノがあったりするのでリソースをとってくる前に
サイズだけを知りたいのです。よろしくご検討ください。

田中求之 さんからのコメント
( Friday, September 22, 2000 14:37:37 )

>とうとう正式版がでるのですね?

出します(笑) 先ほど、ようやく、全てのコードの見直しと再コンパイル、
ストレステストが完了しました。今日から月末まで、このサイトの CGI の運用
で実践テストを行って、問題がなければリリースします。

全てのコードのメモリー管理部分を見直し改良しましたので、理論的には若干
早くなったはずです (^_^;;

仕様については、GM でフリーズしましたので、新たな追加はしないつもりですが、

>2バイトのスペースも削除できるようにならないでしょうか?

これぐらいなら差し込めるかも知れませんので、今夜にでもコードを検討します。

>リソース関連としてタイプとIDを指定してリソースのサイズを取得する機能

こっちは Extra に追加ということで作っておきます(っていうか、非公開のも
のとして、すでにある)。


なお、今日から実践テストに持ち込むバージョンを登録しておきましたので、
最終確認に協力しても良いという方は、試してみてください。 GM からの
変更点は、見かけの上では、MT ASCII Chars を MT ASCII Characters に
名前を変更し、MT Parse CGI と Akua Sweet とのバッティング(海外の方が
使う Latin1 -> MacRoman 変換部分ですので、日本では影響が出てなかった
んです)の解消です。

→  Tanaka_osax_2.0_preview.sit

田中求之 さんからのコメント
( Friday, September 22, 2000 22:40:43 )

この会議室の CGI を preview 版で動かし始めたら(MT BBS List も 1.03
にして)、書き込んだときなどの反応速度が若干速くなったような気がする…
 …のは、単にコードのチェックにつかれているせいかな (^_^;;

いずれにせよ、大きな問題はないみたいで、ほっと一息というところです。

野本夏俊 さんからのコメント
( Friday, September 22, 2000 22:51:39 )

ありがとうございます。
これで実装を見送っていた機能を実現できそうです。

最終確認にも微力ながら協力させていただきます。

田中求之 さんからのコメント
( Saturday, September 23, 2000 00:38:10 )

>>2バイトのスペースも削除できるようにならないでしょうか?
>これぐらいなら差し込めるかも知れませんので、今夜にでもコードを検討します。

検討した結果、すみませんが、実装は見送らせてもらいます。1 byte 単位での
処理を基本としていますので、安易に 2 bytes 文字の処理を入れると、ちょっと
面倒なことになりそうなので。

リソースの方は、以下のものを Tanaka Extra に追加しておきました。明日にでも
登録しておきます。

MT Resource Size: 
MT Count Resources: Count resources in a file
MT List ID of Resource: List ID of resource
MT List Resources: List of types of resources in the file

野本夏俊 さんからのコメント
( Saturday, September 23, 2000 15:08:04 )

2バイトスペースの件はちょっと残念ですが、リソースサイズの取得ができるだけでも大助かりです。
ありがとうございます。

田中求之 さんからのコメント
( Saturday, September 23, 2000 18:40:14 )

以下を追加した Tanaka's Extra を登録しておきました。

MT Resource Size --- リソースのサイズを得る
MT Count Resources --- リソースの数を数える
MT List ID of Resource --- リソースの ID の一覧
MT List Resource Types --- リソースのタイプの一覧

→  Tanaka's osax

田中求之 さんからのコメント
( Monday, October 02, 2000 16:44:09 )

2.0 正式版をリリースしました。

→  Tanaka's osax

稲垣 さんからのコメント
( Thursday, October 26, 2000 17:44:58 )

 ASUGでも報告しましたが、ダメ元でOS X上で使ってみました。

 取りあえず、「~/Library/ScriptingAdditions/」に2.0fcをコピーして使いました。

 コンパイル自体は通りますが、実行時にメッセージを理解できませんという風に
エラーが起きてしまいます。

 やっぱりといえば、それまでですが、コンパイル(文法チェック)が通ったので少し
期待してしまいました。

 なお、Classic上のアプレットであれば、参照先のシステムフォルダにあるTanaka's OSAX
は認識して動作しました。Classicに戻ってもプロパティなどの情報は保持している様で
す。

稲垣 さんからのコメント
( Tuesday, February 27, 2001 14:22:53 )

 ここのスレッドも、暫く発言がありませんが、Tanaka's OSAXのOS X対応は
どんな感じでしょうか?
 開発自体には協力できませんが、デバッグ等の動作上でのテストは、お手
伝いしますので、その際には声をかけて下さい。

田中求之 さんからのコメント
( Tuesday, February 27, 2001 14:49:49 )

OS X で、果たして AppleScript がどうなるのか、そのへんを見極めたいと
考えています。

これでベータやパブリックベータを試してきた感触としては、個人的には、
OS X で AppleScript に固執する必要性があるのか、疑問を感じています。
Project Builder のような開発環境をさわっていると、osax を持っていって
なにかやるより、Cocoa でツールを作ったほうが、OS X では有効ではないの
かとも感じるわけです。

ただ、OS X には関係なく、MacOS にはこだわり続けることになると思います
ので、PPC native 化は考えています。

そんなわけで、正直言って、今は、様子見ってところなんですよ。

稲垣 さんからのコメント
( Tuesday, February 27, 2001 15:40:04 )

> これでベータやパブリックベータを試してきた感触としては、個人的には、
> OS X で AppleScript に固執する必要性があるのか、疑問を感じています。
> Project Builder のような開発環境をさわっていると、osax を持っていって
> なにかやるより、Cocoa でツールを作ったほうが、OS X では有効ではないの
> かとも感じるわけです。

 まあ、私も多分に思うところがあります。ただ、今までものが、ネイティブ
に動作するとなれば、状況が変わるのかなとも思っています。
 大物OSAXであるTanaka's OSAXがOS Xに移植されれば、Xで動作するスクリプト
群が多くなるかと思います。

 お手伝いが出来ないのにリクエストばかりですが、Tanaka's OSAXが移植
されれば、AppleScriptのXへの移行速度は上がると思っています。
#もっとも、X でのAppleScriptの実装がちゃんとできるかにかかわりますが。