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

EasyBBS Plugin v1.0b5

発言者:前薗 健一
( Date Tuesday, May 16, 2000 05:26:40 )


EasyBBS Plugin v1.0b5 を公開します。
別に WWDC に合わせた訳ではないのですが。(^^;

このバージョンでの変更点は

メモリ管理を W*API に統一
CONDITIONAL_GET, cookie に対応
Virtual Domain に対応
「新しいメッセージを投稿する 」のタイトル、発言者の中に含まれるタグは全て無効にする

それと

EasyBBS Plugin は、バグの FIX は行いますが、現在の仕様の変更は考えておりません。
ただし、将来的に有用な機能は加えるかもしれません。

今後、もしユーザ固有のリクエストがあれば、有償で対応することは考えています。
EasyBBS Plugin 自体はフリーウェアですが、個別に機能のリクエストがあった場合には、
それなりの対価をいただいて対応するということは考えています。

お試し下さい。


→  EasyBBS Plugin

前薗 健一 さんからのコメント
( Tuesday, May 16, 2000 05:36:43 )

言い忘れましたが、今回の開発に関しては、田中さんと、稲垣さんに多大なる御協力を
いただきました。ありがとうございました。

バグが残っているかもしれませんが、その時はごめんなさい。

たまちゃん さんからのコメント
( Tuesday, May 16, 2000 10:32:58 )

>別に WWDC に合わせた訳ではないのですが。(^^;

そういうことにしておきましょう。(^_^

いつも有り難うございます。帰宅したら早速テストしてみたいと思います。

#4年前に,この会議室ではじめてコメントをつけてもらったのが前薗さん
だったんですよ。うれしかったです。

前薗 健一 さんからのコメント
( Wednesday, May 17, 2000 00:07:14 )

それでは WWDC 2000 記念版ということで。(^^;

修正点をいくつか補足しておきます。

メモリ管理を W*API に統一
通常、C++ ではメモリの確保、廃棄に new/delete といった operator を使用します。
しかし、W*API のマニュアルでは C, C++, Mac Toolbox の API を使ってはいけない
という記述があります。これまでは、Metrowerks CodeWarrior の標準の new/delete
を使っていましたが、これを W*API のものに置き換えました。

ただし、Metrowerks PowerPlant という framework を使用している関係上、
PowerPlant 内部でどういったメモリ管理をしているかは、全てを把握している
ものではありません。

Virtual Domain に対応
私は QuickDNS Pro 等の DNS ソフトは所有していないため、Hosts file と WebSTAR
の Virtual Domain の機能を使いテストしました。不具合が出る可能性はあります。

Velocity engine
これもどこかで読んだのですが、Toolbox ( Carbon ) の BlockMove は Velocity engine
により高速化されるということでしたので、これまで memcpy を使っていた部分を
BlockMove に変更しました。

前薗 健一 さんからのコメント
( Thursday, May 18, 2000 04:01:06 )

書き忘れていました。(^^;

pi_admin.admin, pi_admin.bbs へのアクセスにより、Web browser から
設定できるようになっています。

重松修 さんからのコメント
( Thursday, May 18, 2000 13:05:09 )

ブロック転送ですが、G4 以外の環境では、おそらく libmoto の memcopy が
高速なのではと思っています。実際のところはわかりません。

ところで、BlockMove ではなくて、BlockMoveData を PPC では使ったほうが
よいというような記述をどこかで見たように思うのですが。

それから、PowerPlant のメモリ確保ですが、使っているものが何か
知りませんが、LHTTPConnection あたりを見たところ、
NewHandle などを使っていました。

以前実験したのですが、new は NewPtr よりも著しく高速で、malloc が
もっとも低速でした。とくに割り当てるサイズが小さいときに差か顕著です。
CodeWarrior Pro 5 で試しました。

おそらく内部的に new はある程度の領域を確保し、それを自分で割り当てる
ことにより、高速化しているのだと思います。

もし、前園さんが LStr255 (LString) 位しか使ってないのなら、 basic
string class を使えばよいと思います。

以前、EasyBBS アプリケーション版のコードを拝見したとき、
TCL を使っていたようですが、basic string class は new を使っている
はずですので、new 演算子自身を webstar の memory manager (?) を
使うように変更するだけで済むと思います。

無論、動的な配列なども、STL に置き換えれば、MacOS の API を直接
たたくことはまずないと思うので、new の置き換えで済むと思います。

私はやったことがないので具体的なやり方はわかりませんが、以前
CodeWarrior の mailing list で飯森さんが、new でもってくるメモリは
全部 temporary からにしてある、とおっしゃっておられましたので、
可能であることは確かだと思います。

前薗さんには、おそらく周知の事実ばかりだとは思いますが、
なにかヒントになればと投稿いたしました。

前薗 健一 さんからのコメント
( Thursday, May 18, 2000 21:50:23 )

重松さん、ありがとうございます。

重松のおっしゃっていること全てではありませんが、私の理解している範囲で
考慮してコーディングしてあります。

→  ClearWay's WebSTAR Plug-In Cookbook

山本 武 さんからのコメント
( Friday, June 16, 2000 20:27:10 )

 EasyBBS PluginはMac OS X時代になっても使えるのでしょうか?
 きっとclassic環境下では動作すると思いますがパフォーマンスが気になります。
 WebサーバーとPluginがペアでcarbon化されて初めてcarbon環境では動作すると
 考えてよいでしょうか?

たまちゃん さんからのコメント
( Saturday, June 17, 2000 00:05:28 )

> EasyBBS PluginはMac OS X時代になっても使えるのでしょうか?

むむむ,これは何とも。現在 DP4 が出ていますが,入手が限られています
ので,公開ベータが出たときに確かめるしかないでしょうね。

> WebサーバーとPluginがペアでcarbon化されて初めてcarbon環境では動作すると
> 考えてよいでしょうか?

これはその通りだと思います。EIMS などは carbonise を行うようです。

山本 武 さんからのコメント
( Saturday, June 17, 2000 09:47:39 )

ご返答有り難うございます。
理解は間違っていないとすると、あとはWWWサーバーとPluginのcarbonaizeの予定次第ですね。
きっと(希望も込めて)WebStarはcarbonaizeするとして、EasyBBS Pluginの予定はどうでしょうか。

前薗 健一 さんからのコメント
( Saturday, June 17, 2000 19:19:54 )

EasyBBS Plugin は Carbon Dater により 100% Carbon compatible であることは
判明しています。

山本 武 さんからのコメント
( Sunday, June 18, 2000 09:35:54 )

 EasyBBS Pluginが既に100% Carbon compatible と伺って安心しました。会議室環境がClassicに押し込められるようなら、マシンの更新+Mac OS X化より9500の強化と考えていました。
 ”たまちゃん”さん、前薗さんご返答有り難うございました。