GeorgのBrave GNU Worldへようこそ。 今月は、 比較的広いアプリケーション範囲をおおう小さなプロジェクトがいくつかあります。 非常に興味深いメール・リーダーから始めましょう。
Sylpheed [5] は、 山本博之らの開発した非常にユーザー・フレンドリーなメール・リーダーです。 彼がSylpheedプロジェクトを始めた理由は、 既存のメール・リーダーに不満があったためです。
Emacsベースのメール・リーダーは添付の適切な扱いに問題があり、 かなり重く、 メールを読むにはEmacsをうごかしてないといけません。 他のGUI指向のメール・プログラムは、 インターフェースに慣れるのは作者には難しく思えたり、 スレッドのサポートもあまりなかったり、 他のメール・リーダーのことを考慮していなかったり、 一部の機能がキーボードで操作できなかったりしました。 前に同様のことを考えた人はすべて、 Sylpheedをためした方がいいかもしれません。
Sylpheedの利点は、 かなり印象的です。 インターフェースはGTK+ツールキットに基づいていて非常に直観的です。 大まかなスケッチからはずれないようにいうと、 メールのフィルターとスレッドでの表示能力が重要なところです。 もちろんMIMEのマルチパートもサポートし、 統合イメージ・ビューアーも含まれます。 X-Facesは、 「クリッカブルURI」のようにサポートされます。 ところが、このようにGUIに重点をおいているにもかかわらず、 すべての操作がキーボードからもできるのです。
非常に前向きな特徴は、 XMLベースのアドレス帳です。 こうして他のアプリケーションでの可用性や移行性(portable)が保証されます。 またメール・フォルダーも移行性があります。 MH形式で保存されるので、 Mewのような他のメール・リーダーでも使えます。
そのうえさらに、 Sylpheedでニュースを読めます(書込みはだめです)し、 メールを受け取るには、 fetchmailやprocmailのような外部プログラムの呼出しをサポートしています。 差し出すメールは、 送信前にキューに集めることができます。
Sylpheedは比較的新しく、 したがってまだIMAP4、 LDAP、 PGP/GPGサポート、 SSL、 メール・フォルダーの圧縮などを含め、 かなり長いTODOリストがあります。 また、 英語の地域化についての作業がいくらか必要ですが、 gettextベースですので、 これはたいした問題ではありません。 Debianユーザーは、 任意のアドレスから直接Sylpheedをインストールできます。 autoconf/automakeをサポートしているので、 そうでない人にもそんなにまずくはありません。
もし今お使いのメール・リーダーに不満ならば、 間違いなく試してみるべきです。
Xzgv [6] は、 コンソール・ツールzgvに触発されたX11用イメージ・ビューアーで、 Russell Marksが書きました。 なぜなら、 彼はそのコンソールととても相性がよく、 X11イメージ・ビューアーについて不満をもっていたからです。 彼の元々の計画は、 ちょうどzgvをX11用に移植することでした。 しかし、 これは望みの結果には実らないだろうことを、 彼はかなり早くにさとりました。
Xzgvは、 マウスやキーボードで完全に制御でき、 イメージを選択したり、 表示したりするためにウインドーを1つだけ使います。 イメージ・ビューアーによってはありがちな「ウインドー動物園」とは、 これでもうおさらばです。 GNOMEやKDEの差を吸収するGTK+ツールキットに基づいて書いてあるので、 どこにでも問題なく使え、 良好な可用性と同様、 敏感な即応性をもちます。
まっとうなイメージ・ビューアーを書くことは、 一部の人たちが考えるほどささいな仕事ではない、 ということを強調するよう、 作者は私に要請してきました。 もちろん、 「あるイメージを単に表示する」ことは、 高度に複雑な仕事ではありません。 しかし、 「ちゃんと処理をする」一般的なイメージ・ビューアーの作成には、 明白でない若干の問題の解決が必要です。
Xzgv(の開発)は、 すでにほとんど終わっています。 さらなる開発の計画は多分、 Imlib 1.xライブラリーからの独立と、 本当に大きい画像の閲覧の最適化にかぎられるでしょう。
これはGNU General Public Licenseの下で許諾されていますから、 私は、 まったく悪感情なく、明確に推薦できます。
次は、 最近GNU Projectに参加した比較的特殊なプログラムに続きます。
Solfege [7] (「ソルフェージュ」) は、 耳の訓練プログラムです。 この分野は、 MS WindowsやMacOSの配下の独占的プログラムでほぼ完全に支配されています。 音楽教師のTom Cato Amundsenは、 自分自身のレッスンのために始めたプロジェクトで、 Solfegeを書き始めました。
注目すべき特徴は、 ASCII形式の「レッスン・ファイル」で拡張できる、 つまり、 音楽教育についての知識のある人なら簡単に、 レッスンを自分で付け加えられることです。 このファイルをもっと多く書くことは、 近々で最も緊急の仕事のうちの1つです。
選択した解が作者に不満足であることが明らかになり、 長期的には、 彼はプログラムの大部分を再実装したがっています。 その際には、 OSSプログラミング経験者の手助けが、 非常に歓迎されることでしょう。
Solfege V1.0はまだまだ中途半端ですから、 明らかな対象者である音楽学生や音感訓練に関心のある人々は、 現時点でこのプログラムにあまり多くを要求するべきでない、 ということもいっておかなかければなりません。
次のプロジェクトもまた、学校分野からGNU Projectに入ってきました。
Eric Sandeen、 Hilaire Fernandesおよび若干のボランティアによるGgradebook [8] は、 その名前の示唆するとおり、 成績管理用のプログラムです。
これは、GTK+ツールキットに基づき、 GNOMEサポート用のコンパイル・オプションもあります。 Ggradebookでは、成績の形式を百分率、無名番号、英字にできます。 あとの2つは、百分率との対応を自動的につけられ、 計量のカスタム化も可能です。
現在の問題は、百分率と英字では、成績の調節に「+」「-」をつけられないことです (番号の成績にだけはこうできます)。 さらなる計画は、国際化、 同様のプログラムとやりとりする取込み、取出しのフィルター、 さらに多くの特徴を含んでいます。 全機能へアクセスできるインターフェースはすでにありますが、 もっとユーザー・フレンドリーになるよう、向上がはかられるでしょう。
今のところ作者が直面している最大の困難は、 フィードバックの不足で、 もっと多くが必要とされています。 ですので、 このてのものを使うだろう全読者は、 これを試したうえで感想を伝えるようすすめられます。
次の3つのプロジェクトは多分、 明らかに開発者寄りです。
Common C++ [9] は、 David Sugarの書いたAPEプロジェクトとして当初、 始まりました。 2000年3月にDavid SilverstoneによるCommon C++と併合され、 David SugarがCommon C++という名前が気にいったので、 共同プロジェクトはその名前になりました。
Common C++は基本的に、 ANSI Std C++ライブラリーの止まった場所から始まっています。 目標は、PosixとWin32システムでの永続的なクラス直列化、 抽象スレッド、ソケット、直列I/Oといった仕事のための機能をあたえる、 可搬なクラス・ライブラリーの作成です。
この機能の大部分は、 相互関係のない、 単独のライブラリー群によってすでに提供されています。 David Sugarにとって、 Common C++の利点は、 これらすべての仕事のための一貫した構造にあります。 それは非常に可搬でもあり、 すべてを1つの大きなライブラリーに入れる代り、 Common C++は、 別々なシステムには別々なライブラリーを使います。 これにより、 マシンやシステムにあった、 オーバーヘッドの少ないライブラリーが書けます。 Common C++のアプリケーションは、 同時に両方のアーキテクチャーで動作するでしょう。
コンパイラについてはとても幅があり、 標準にしたがっていないC++コンパイラを数個サポートしています。 もっとも彼は、 標準化がすすめばこれは無視可能になると信じてはいますが。
大部分の開発者ならご存じなように、 ほとんどすべてのUnix実装には普通、 標準に不適合な独自のスレッド実装があります。 このためCommon C++は、 構築の間にかなりの量の検査をし、 きれいな方法で抽象できるようにします。 これはまだ直接GNU Pth (GNU Portable Threadsについては、 Brave GNU World第1号を参照) と連携はしていませんが、 すでにこのpthreadのエミュレートとともにはたらくはずです。 将来、 GNU Pthのネーティブ・サポートの提供を計画中です。
古いC++コンパイラ用の時代遅れなところを削除するため、 今秋に2.0版への「書き直し」をする予定です。その上、さらに多くのプラットホーム (BeOS)のサポートが計画されており、機能についていえば、 ネットワーク・プロトコルのライブラリーが実装されるでしょう。 少なくともDavid Sugarの考えでは、 このネットワーク・プロトコル・ライブラリーの欠落が、Common C++最大の弱点です。 このプロジェクトでは開発者のコミュニティーが非常に活動的なので、 長期的展望として、彼は、もっと管理的な役割を引き受ける予定です。 また、最新リリースへの多大な作業をした人として、 Henner ZellerとGianni Marianniをあげてほしいとのことです。
このプロジェクトで選んだライセンスは、ちょっとGuileライセンスのような2、 3の追加条件のあるGNU General Public Licenseです。 これは、GPLとGNU LGPLの中ほどの権利と自由をあたえています。 過去、これで混乱が若干おきたので、2.0版はきっとLGPLの下で配布されるでしょう。
2000年4月現在、 Common C++は、 すでにBayonne (Brave GNU World第16号を参照) といった若干のFree Softwareプロジェクトの基盤ですので、 公式のGNU Projectであることも驚くにはあたりません。
Andrew MakhorinによるGNU marst [10] は、 最近GNU Projectに参加した、AlgolからCへの変換プログラムです。
このプロジェクトは、 "Modified Report on the algorithmic Language Algol 60" [11] で規定された、Algol 60プログラミング言語を完全に実装しています。 実際この言語はほとんど変化をしていないので、 利用者の操作をもっと簡単にするフロントエンド・シェルの作成が、 作者の現在の課題です。 たまたま自由なAlgol 60プログラムをお持ちの方へ。 作者は現在、あらゆる種類のプログラムをさがしています。
他と同様Gengetopt [12] は、新しい公式GNU Projectです。 これは元来、Roberto Arturo Tena Sanchezによるツールで、 今では、Lorenzo Bettiniが保守をしています。 この機能は、 他の別なプログラム用に、 コマンド行オプションを自動的に解析、 検査するCの関数を作成することです。 結果は、 ある構造体で戻されます。
gengetoptはすべてのC/C++プログラマには非常に有益なツールです。 なぜなら、 コマンド行の解析はプログラマにとってはいくぶん退屈ですが、 非常に重要な仕事だからです。 プログラマは、 当該のオプションが必須か任意か、 またパラメータがいるかどうかを、 思ったとおりに指定するだけです。 そして、 gengetoptの生成した関数のCソース・コードをプログラムに加え、 それを呼び出せば、 コマンド行の検証や評価ができるわけです。
Brave GNU Worldのやりかたにしたがい、 最後のプロジェクトではソフトウェアに直接は関係ないことについて論じたい、 と思います。
Stefan MeretzによるOpenTheoryプロジェクトは、 Free Software開発の精神や作業を文書の発展へ移そうとしています。 すべての文書は、 GNU Free Documentation Licenseの下にあり、 文書資料や本にはじまり、概念や理論上の文書まで、 何でも取り扱うことになっています。
メーン・サイト [13] には、 ウェブ・ベースのツールによって駆動される対等のハブがあります。 これで思考やアイデアを交換できるようにしています。 プロジェクトは、オンラインで始めることができ、 文書は、討論用に利用できるようにすることができます。 テキストはすべて、 ASCII形式で伝送され、 MySQLデータベースに格納されます。 (ウェブの)ページはPHP3に基づき、ものすごく動的です。
各プロジェクトには、 ウェブのインターフェースで投稿できる独自のメーリング・リストがあります。 その上、似たようなプロジェクトはリンクされ、 メーリング・リストを共有できます。
Stefan Meretzが現在必要としている唯一のものは、 OpenTheoryの機能を制御するメールのインターフェースです。 文書は今のところ、メールでの投入ができません。
このプロジェクトは、比較的興味深い若干の作業にもう使われています。 まずOekonuxプロジェクト (Brave GNU World第18号) は、OpenTheoryで産声をあげたものですし、 the LinuxTag in Stuttgart, Germany (ドイツ、シュツットガルト版Linuxの日々) における議論やおしゃべりの展開にも、 これが使われました。
OpenTheoryプロジェクト自体 (機能を提供するソフトウェアをさします) は0.4版で、 GNU General Public Licenseの下で許諾され、 外からの開発者の参加はまだまだ非常に歓迎されています。
さて、今月はこのへんで。 もし運がよければ、来月は比較的何か特別なものがあるでしょう。 でもそれは、もうひと月かそれ位遅れるかもしれませんので、 約束はできませんが。:-)
また、いつものように、新しいプロジェクト、アイデア、質問、提案を お寄せいただくようお願いしたいと思います [1] 。
情報
|
[1]
意見、批判や質問は
Brave GNU World <column@gnu.org>
まで
[2] GNUプロジェクトのホームページ http://www.gnu.org/home.ja.html [3] GeorgのBrave GNU Worldのホームページ http://www.gnu.org/brave-gnu-world/brave-gnu-world.ja.html [4] 「We run GNU」イニシアチブ http://www.gnu.org/brave-gnu-world/rungnu/rungnu.ja.html [5] Sylpheedホーム・ページ http://sylpheed.good-day.co.jp/index.cgi.en [6] Xzgvホーム・ページ http://rus.members.beeb.net/xzgv.html [7] Solfegeホーム・ページ http://www.gnu.org/software/solfege/ [8] Ggradebookホーム・ページ http://www.gnu.org/software/ggradebook/ [9] Common C++ホーム・ページ http://www.commoncpp.cx/ [10] GNU marstホーム・ページ http://www.gnu.org/software/marst/ [11] Modified Report on the Algorithmic Language Algol 60. The Computer Journal, Vol. 19, No. 4, Nov. 1976, pp. 364-79 [12] Gengetoptホーム・ページ http://www.gnu.org/software/gengetopt/ [13] OpenTheoryホーム・ページ (ほとんどドイツ語) http://www.opentheory.org |
GNUのホームページにもどる。
FSFやGNUについてのお問合せ、 ご質問は、 (英語で) gnu@gnu.orgまで。
GeorgのBrave GNU Worldについてのご意見は、
(英語かドイツ語で)
column@gnu.orgまで。
ウェブ・ページについてのご意見は、
(英語で)
webmasters@www.gnu.orgまで。
他のご質問は、
(英語で)
gnu@gnu.orgまで。
日本語訳: 飯田義朗
Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.
(著作権と上の許可告知のある限り、 この写しの逐語的な複製をとって、 配布する許可を認めます。)
Last modified: Sat Sep 23 18:39:55 CEST 2000