http://sodan.komaba.ecc.u-tokyo.ac.jp/\textasciitilde kazuho/friends/ 参照。と言うだけでは寂しすぎるんで (^^;; 、少し説明すると、情報棟を少し利用しかけると誰もが作りかける finger 連発シェルスクリプト(*1)じゃぁあんまりだということで、有志(おくーほさんと Aleph-NULL さんとたなかぁさん)が作り上げた fingerd キャッシュデーモンとそのクライアント群の総称です。
(*1)全てのサーバに finger @ する邪悪シェルスクリプト。負荷が大きいので真似禁止:)
駒場に瞬く間に広がった friends ですが、問題が無かったわけではありません。ecc-as50, ecc-as51 (当時)に負荷をかけまくったり、急造プログラムであったがゆえに良く落ちたり、connect 制限がきつかったりとかなり重かったものと記憶しています。
1997年度になって sodan.komaba.ecc.u-tokyo.ac.jp の創設、friendsd の改訂(新プロトコルの実装、非駒場依存)が行われました。
そこで、私がクライアントの作成を買って出たのですが、、、それまで使われていた Aleph-NULL さんのクライアント rfpmap を新プロトコルに対応&キャッシュの実装させるだけで半年近くお茶を濁していたのでした。
なんか駒祭近いです。TSGer は企画を持たなくてはなりません。しかも何らかの展示をしなければ罰ゲームとして、良く知らないアニメ夢のクレヨン王国のシルバー王女のコスプレをしつつ、オープニングテーマン・パカ マーチをカラオケで歌わなくてはならないそうではないですか(*2)!
(*2)自分で決めた事だけど(ぉ
そこで、急遽ここでまたお茶を濁して済ます案を模索して出てきたのが、以前から作ると言っていた mfp だったと言うわけです(*3)
(*3)djgpp libc v2.01 for PC-AT/PC-9800 PATCH を展示しても良かったんだけど、知名度低いし:D
というわけでお分かりでしょう。mfp とは Friends Project 下で動作する非駒場依存な新クライアントプログラムです。
クライアントソースコードを非駒場依存にする際にもっとも大変なのが検索です。依存して良いのであれば int xst[54] みたいに静的に確保した配列にチェックを入れるだけで良いところが、
てなことを動的に行わなくてはならないので、友人情報とログイン情報には AVL 木を使用しました。
これが大変だろうなぁと思ってしばらく(半年)やる気を失せさせていたのですが、ふとしたきっかけでやってみるとこれがあっさりできたので、やってみるかなと現在に至っています。
しかし、実は一番大変なのはユーザインタフェースであった事に最近気づいて戸惑っています(^^;; 駒祭が終了しても開発は続行しなくてはならないので、今からまた気が滅入ってきたなぁ。
駒祭ではデモが動くまでにできていたら誉めてやってください:)